Revision c300f9c9
b/lib/cmdlib.py | ||
---|---|---|
6508 | 6508 |
return results |
6509 | 6509 |
|
6510 | 6510 |
|
6511 |
def _GenerateDRBD8Branch(lu, primary, secondary, size, names, iv_name, |
|
6511 |
def _GenerateDRBD8Branch(lu, primary, secondary, size, vgname, names, iv_name,
|
|
6512 | 6512 |
p_minor, s_minor): |
6513 | 6513 |
"""Generate a drbd8 device complete with its children. |
6514 | 6514 |
|
6515 | 6515 |
""" |
6516 | 6516 |
port = lu.cfg.AllocatePort() |
6517 |
vgname = lu.cfg.GetVGName() |
|
6518 | 6517 |
shared_secret = lu.cfg.GenerateDRBDSecret(lu.proc.GetECId()) |
6519 | 6518 |
dev_data = objects.Disk(dev_type=constants.LD_LV, size=size, |
6520 | 6519 |
logical_id=(vgname, names[0])) |
... | ... | |
6533 | 6532 |
instance_name, primary_node, |
6534 | 6533 |
secondary_nodes, disk_info, |
6535 | 6534 |
file_storage_dir, file_driver, |
6536 |
base_index): |
|
6535 |
base_index, feedback_fn):
|
|
6537 | 6536 |
"""Generate the entire disk layout for a given template type. |
6538 | 6537 |
|
6539 | 6538 |
""" |
... | ... | |
6552 | 6551 |
for i in range(disk_count)]) |
6553 | 6552 |
for idx, disk in enumerate(disk_info): |
6554 | 6553 |
disk_index = idx + base_index |
6554 |
vg = disk.get("vg", vgname) |
|
6555 |
feedback_fn("* disk %i, vg %s, name %s" % (idx, vg, names[idx])) |
|
6555 | 6556 |
disk_dev = objects.Disk(dev_type=constants.LD_LV, size=disk["size"], |
6556 |
logical_id=(vgname, names[idx]),
|
|
6557 |
logical_id=(vg, names[idx]), |
|
6557 | 6558 |
iv_name="disk/%d" % disk_index, |
6558 | 6559 |
mode=disk["mode"]) |
6559 | 6560 |
disks.append(disk_dev) |
... | ... | |
6571 | 6572 |
names.append(lv_prefix + "_meta") |
6572 | 6573 |
for idx, disk in enumerate(disk_info): |
6573 | 6574 |
disk_index = idx + base_index |
6575 |
vg = disk.get("vg", vgname) |
|
6574 | 6576 |
disk_dev = _GenerateDRBD8Branch(lu, primary_node, remote_node, |
6575 |
disk["size"], names[idx*2:idx*2+2], |
|
6577 |
disk["size"], vg, names[idx*2:idx*2+2],
|
|
6576 | 6578 |
"disk/%d" % disk_index, |
6577 | 6579 |
minors[idx*2], minors[idx*2+1]) |
6578 | 6580 |
disk_dev.mode = disk["mode"] |
... | ... | |
7408 | 7410 |
except (TypeError, ValueError): |
7409 | 7411 |
raise errors.OpPrereqError("Invalid disk size '%s'" % size, |
7410 | 7412 |
errors.ECODE_INVAL) |
7411 |
new_disk = {"size": size, "mode": mode} |
|
7413 |
vg = disk.get("vg", self.cfg.GetVGName()) |
|
7414 |
new_disk = {"size": size, "mode": mode, "vg": vg} |
|
7412 | 7415 |
if "adopt" in disk: |
7413 | 7416 |
new_disk["adopt"] = disk["adopt"] |
7414 | 7417 |
self.disks.append(new_disk) |
... | ... | |
7593 | 7596 |
self.disks, |
7594 | 7597 |
file_storage_dir, |
7595 | 7598 |
self.op.file_driver, |
7596 |
0) |
|
7599 |
0, |
|
7600 |
feedback_fn) |
|
7597 | 7601 |
|
7598 | 7602 |
iobj = objects.Instance(name=instance, os=self.op.os_type, |
7599 | 7603 |
primary_node=pnode_name, |
... | ... | |
9389 | 9393 |
disk_info = [{"size": d.size, "mode": d.mode} for d in instance.disks] |
9390 | 9394 |
new_disks = _GenerateDiskTemplate(self, self.op.disk_template, |
9391 | 9395 |
instance.name, pnode, [snode], |
9392 |
disk_info, None, None, 0) |
|
9396 |
disk_info, None, None, 0, feedback_fn)
|
|
9393 | 9397 |
info = _GetInstanceInfoText(instance) |
9394 | 9398 |
feedback_fn("Creating aditional volumes...") |
9395 | 9399 |
# first, create the missing data and meta devices |
... | ... | |
9507 | 9511 |
[disk_dict], |
9508 | 9512 |
file_path, |
9509 | 9513 |
file_driver, |
9510 |
disk_idx_base)[0] |
|
9514 |
disk_idx_base, feedback_fn)[0]
|
|
9511 | 9515 |
instance.disks.append(new_disk) |
9512 | 9516 |
info = _GetInstanceInfoText(instance) |
9513 | 9517 |
|
Also available in: Unified diff