Revision 2c2690c9 lib/cmdlib.py

b/lib/cmdlib.py
454 454

  
455 455

  
456 456
def _BuildInstanceHookEnv(name, primary_node, secondary_nodes, os_type, status,
457
                          memory, vcpus, nics):
457
                          memory, vcpus, nics, disk_template, disks):
458 458
  """Builds instance related env variables for hooks
459 459

  
460 460
  This builds the hook environment from individual variables.
......
476 476
  @type nics: list
477 477
  @param nics: list of tuples (ip, bridge, mac) representing
478 478
      the NICs the instance  has
479
  @type disk_template: string
480
  @param disk_template: the distk template of the instance
481
  @type disks: list
482
  @param disks: the list of (size, mode) pairs
479 483
  @rtype: dict
480 484
  @return: the hook environment for this instance
481 485

  
......
493 497
    "INSTANCE_STATUS": str_status,
494 498
    "INSTANCE_MEMORY": memory,
495 499
    "INSTANCE_VCPUS": vcpus,
500
    "INSTANCE_DISK_TEMPLATE": disk_template,
496 501
  }
497 502

  
498 503
  if nics:
......
502 507
        ip = ""
503 508
      env["INSTANCE_NIC%d_IP" % idx] = ip
504 509
      env["INSTANCE_NIC%d_BRIDGE" % idx] = bridge
505
      env["INSTANCE_NIC%d_HWADDR" % idx] = mac
510
      env["INSTANCE_NIC%d_MAC" % idx] = mac
506 511
  else:
507 512
    nic_count = 0
508 513

  
509 514
  env["INSTANCE_NIC_COUNT"] = nic_count
510 515

  
516
  if disks:
517
    disk_count = len(disks)
518
    for idx, (size, mode) in enumerate(disks):
519
      env["INSTANCE_DISK%d_SIZE" % idx] = size
520
      env["INSTANCE_DISK%d_MODE" % idx] = mode
521
  else:
522
    disk_count = 0
523

  
524
  env["INSTANCE_DISK_COUNT"] = disk_count
525

  
511 526
  return env
512 527

  
513 528

  
......
536 551
    'memory': bep[constants.BE_MEMORY],
537 552
    'vcpus': bep[constants.BE_VCPUS],
538 553
    'nics': [(nic.ip, nic.bridge, nic.mac) for nic in instance.nics],
554
    'disk_template': instance.disk_template,
555
    'disks': [(disk.size, disk.mode) for disk in instance.disks],
539 556
  }
540 557
  if override:
541 558
    args.update(override)
......
2761 2778
    """
2762 2779
    env = {
2763 2780
      "IGNORE_SECONDARIES": self.op.ignore_secondaries,
2781
      "REBOOT_TYPE": self.op.reboot_type,
2764 2782
      }
2765 2783
    env.update(_BuildInstanceHookEnvByObject(self, self.instance))
2766 2784
    nl = [self.cfg.GetMasterNode()] + list(self.instance.all_nodes)
......
3535 3553

  
3536 3554
    """
3537 3555
    env = _BuildInstanceHookEnvByObject(self, self.instance)
3556
    env["MIGRATE_LIVE"] = self.op.live
3557
    env["MIGRATE_CLEANUP"] = self.op.cleanup
3538 3558
    nl = [self.cfg.GetMasterNode()] + list(self.instance.secondary_nodes)
3539 3559
    return env, nl, nl
3540 3560

  
......
4405 4425

  
4406 4426
    """
4407 4427
    env = {
4408
      "INSTANCE_DISK_TEMPLATE": self.op.disk_template,
4409
      "INSTANCE_DISK_SIZE": ",".join(str(d["size"]) for d in self.disks),
4410
      "INSTANCE_ADD_MODE": self.op.mode,
4428
      "ADD_MODE": self.op.mode,
4411 4429
      }
4412 4430
    if self.op.mode == constants.INSTANCE_IMPORT:
4413
      env["INSTANCE_SRC_NODE"] = self.op.src_node
4414
      env["INSTANCE_SRC_PATH"] = self.op.src_path
4415
      env["INSTANCE_SRC_IMAGES"] = self.src_images
4431
      env["SRC_NODE"] = self.op.src_node
4432
      env["SRC_PATH"] = self.op.src_path
4433
      env["SRC_IMAGES"] = self.src_images
4416 4434

  
4417
    env.update(_BuildInstanceHookEnv(name=self.op.instance_name,
4435
    env.update(_BuildInstanceHookEnv(
4436
      name=self.op.instance_name,
4418 4437
      primary_node=self.op.pnode,
4419 4438
      secondary_nodes=self.secondaries,
4420 4439
      status=self.op.start,
......
4422 4441
      memory=self.be_full[constants.BE_MEMORY],
4423 4442
      vcpus=self.be_full[constants.BE_VCPUS],
4424 4443
      nics=[(n.ip, n.bridge, n.mac) for n in self.nics],
4444
      disk_template=self.op.disk_template,
4445
      disks=[(d["size"], d["mode"]) for d in self.disks],
4425 4446
    ))
4426 4447

  
4427 4448
    nl = ([self.cfg.GetMasterNode(), self.op.pnode] +

Also available in: Unified diff