Revision 5029db65 lib/cli.py
b/lib/cli.py | ||
---|---|---|
1524 | 1524 |
if not isinstance(ddict, dict): |
1525 | 1525 |
msg = "Invalid disk/%d value: expected dict, got %s" % (didx, ddict) |
1526 | 1526 |
raise errors.OpPrereqError(msg) |
1527 |
elif "size" not in ddict: |
|
1528 |
raise errors.OpPrereqError("Missing size for disk %d" % didx) |
|
1529 |
try: |
|
1530 |
ddict["size"] = utils.ParseUnit(ddict["size"]) |
|
1531 |
except ValueError, err: |
|
1532 |
raise errors.OpPrereqError("Invalid disk size for disk %d: %s" % |
|
1533 |
(didx, err)) |
|
1527 |
elif "size" in ddict: |
|
1528 |
if "adopt" in ddict: |
|
1529 |
raise errors.OpPrereqError("Only one of 'size' and 'adopt' allowed" |
|
1530 |
" (disk %d)" % didx) |
|
1531 |
try: |
|
1532 |
ddict["size"] = utils.ParseUnit(ddict["size"]) |
|
1533 |
except ValueError, err: |
|
1534 |
raise errors.OpPrereqError("Invalid disk size for disk %d: %s" % |
|
1535 |
(didx, err)) |
|
1536 |
elif "adopt" in ddict: |
|
1537 |
if mode == constants.INSTANCE_IMPORT: |
|
1538 |
raise errors.OpPrereqError("Disk adoption not allowed for instance" |
|
1539 |
" import") |
|
1540 |
ddict["size"] = 0 |
|
1541 |
else: |
|
1542 |
raise errors.OpPrereqError("Missing size or adoption source for" |
|
1543 |
" disk %d" % didx) |
|
1534 | 1544 |
disks[didx] = ddict |
1535 | 1545 |
|
1536 | 1546 |
utils.ForceDictType(opts.beparams, constants.BES_PARAMETER_TYPES) |
Also available in: Unified diff