Revision 651cc3e2 lib/cmdlib.py

b/lib/cmdlib.py
10186 10186
    # check nics' parameter names
10187 10187
    for nic in self.op.nics:
10188 10188
      utils.ForceDictType(nic, constants.INIC_PARAMS_TYPES)
10189
    # check that NIC's parameters names are unique and valid
10190
    utils.ValidateDeviceNames("NIC", self.op.nics)
10191

  
10192
    # check that disk's names are unique and valid
10193
    utils.ValidateDeviceNames("disk", self.op.disks)
10189 10194

  
10190 10195
    cluster = self.cfg.GetClusterInfo()
10191 10196
    if not self.op.disk_template in cluster.enabled_disk_templates:
......
14009 14014
                                 " (%d), cannot add more" % constants.MAX_NICS,
14010 14015
                                 errors.ECODE_STATE)
14011 14016

  
14017
    def _PrepareDiskMod(_, disk, params, __):
14018
      disk.name = params.get(constants.IDISK_NAME, None)
14019

  
14012 14020
    # Verify disk changes (operating on a copy)
14013
    disks = instance.disks[:]
14014
    ApplyContainerMods("disk", disks, None, self.diskmod, None, None, None)
14021
    disks = copy.deepcopy(instance.disks)
14022
    ApplyContainerMods("disk", disks, None, self.diskmod, None, _PrepareDiskMod,
14023
                       None)
14024
    utils.ValidateDeviceNames("disk", disks)
14015 14025
    if len(disks) > constants.MAX_DISKS:
14016 14026
      raise errors.OpPrereqError("Instance has too many disks (%d), cannot add"
14017 14027
                                 " more" % constants.MAX_DISKS,
......
14033 14043
      nics = [nic.Copy() for nic in instance.nics]
14034 14044
      ApplyContainerMods("NIC", nics, self._nic_chgdesc, self.nicmod,
14035 14045
                         self._CreateNewNic, self._ApplyNicMods, None)
14046
      # Verify that NIC names are unique and valid
14047
      utils.ValidateDeviceNames("NIC", nics)
14036 14048
      self._new_nics = nics
14037 14049
      ispec[constants.ISPEC_NIC_COUNT] = len(self._new_nics)
14038 14050
    else:

Also available in: Unified diff