Revision ba147ff8 lib/cmdlib.py
b/lib/cmdlib.py | ||
---|---|---|
9917 | 9917 |
|
9918 | 9918 |
nodenames = [pnode.name] + self.secondaries |
9919 | 9919 |
|
9920 |
# Verify instance specs |
|
9921 |
spindle_use = self.be_full.get(constants.BE_SPINDLE_USE, None) |
|
9922 |
ispec = { |
|
9923 |
constants.ISPEC_MEM_SIZE: self.be_full.get(constants.BE_MAXMEM, None), |
|
9924 |
constants.ISPEC_CPU_COUNT: self.be_full.get(constants.BE_VCPUS, None), |
|
9925 |
constants.ISPEC_DISK_COUNT: len(self.disks), |
|
9926 |
constants.ISPEC_DISK_SIZE: [disk["size"] for disk in self.disks], |
|
9927 |
constants.ISPEC_NIC_COUNT: len(self.nics), |
|
9928 |
constants.ISPEC_SPINDLE_USE: spindle_use, |
|
9929 |
} |
|
9930 |
|
|
9931 |
group_info = self.cfg.GetNodeGroup(pnode.group) |
|
9932 |
ipolicy = _CalculateGroupIPolicy(cluster, group_info) |
|
9933 |
res = _ComputeIPolicyInstanceSpecViolation(ipolicy, ispec) |
|
9934 |
if not self.op.ignore_ipolicy and res: |
|
9935 |
raise errors.OpPrereqError(("Instance allocation to group %s violates" |
|
9936 |
" policy: %s") % (pnode.group, |
|
9937 |
utils.CommaJoin(res)), |
|
9938 |
errors.ECODE_INVAL) |
|
9939 |
|
|
9940 | 9920 |
if not self.adopt_disks: |
9941 | 9921 |
if self.op.disk_template == constants.DT_RBD: |
9942 | 9922 |
# _CheckRADOSFreeSpace() is just a placeholder. |
... | ... | |
10018 | 9998 |
dsk[constants.IDISK_SIZE] = \ |
10019 | 9999 |
int(float(node_disks[dsk[constants.IDISK_ADOPT]])) |
10020 | 10000 |
|
10001 |
# Verify instance specs |
|
10002 |
spindle_use = self.be_full.get(constants.BE_SPINDLE_USE, None) |
|
10003 |
ispec = { |
|
10004 |
constants.ISPEC_MEM_SIZE: self.be_full.get(constants.BE_MAXMEM, None), |
|
10005 |
constants.ISPEC_CPU_COUNT: self.be_full.get(constants.BE_VCPUS, None), |
|
10006 |
constants.ISPEC_DISK_COUNT: len(self.disks), |
|
10007 |
constants.ISPEC_DISK_SIZE: [disk[constants.IDISK_SIZE] |
|
10008 |
for disk in self.disks], |
|
10009 |
constants.ISPEC_NIC_COUNT: len(self.nics), |
|
10010 |
constants.ISPEC_SPINDLE_USE: spindle_use, |
|
10011 |
} |
|
10012 |
|
|
10013 |
group_info = self.cfg.GetNodeGroup(pnode.group) |
|
10014 |
ipolicy = _CalculateGroupIPolicy(cluster, group_info) |
|
10015 |
res = _ComputeIPolicyInstanceSpecViolation(ipolicy, ispec) |
|
10016 |
if not self.op.ignore_ipolicy and res: |
|
10017 |
raise errors.OpPrereqError(("Instance allocation to group %s violates" |
|
10018 |
" policy: %s") % (pnode.group, |
|
10019 |
utils.CommaJoin(res)), |
|
10020 |
errors.ECODE_INVAL) |
|
10021 |
|
|
10021 | 10022 |
_CheckHVParams(self, nodenames, self.op.hypervisor, self.op.hvparams) |
10022 | 10023 |
|
10023 | 10024 |
_CheckNodeHasOS(self, pnode.name, self.op.os_type, self.op.force_variant) |
Also available in: Unified diff