Revision 2c2690c9
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