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