Revision 553cb5f7 lib/cmdlib.py
b/lib/cmdlib.py | ||
---|---|---|
1093 | 1093 |
|
1094 | 1094 |
|
1095 | 1095 |
def _ComputeIPolicySpecViolation(ipolicy, mem_size, cpu_count, disk_count, |
1096 |
nic_count, disk_sizes, |
|
1096 |
nic_count, disk_sizes, spindle_use,
|
|
1097 | 1097 |
_compute_fn=_ComputeMinMaxSpec): |
1098 | 1098 |
"""Verifies ipolicy against provided specs. |
1099 | 1099 |
|
... | ... | |
1109 | 1109 |
@param nic_count: Number of nics used |
1110 | 1110 |
@type disk_sizes: list of ints |
1111 | 1111 |
@param disk_sizes: Disk sizes of used disk (len must match C{disk_count}) |
1112 |
@type spindle_use: int |
|
1113 |
@param spindle_use: The number of spindles this instance uses |
|
1112 | 1114 |
@param _compute_fn: The compute function (unittest only) |
1113 | 1115 |
@return: A list of violations, or an empty list of no violations are found |
1114 | 1116 |
|
... | ... | |
1120 | 1122 |
(constants.ISPEC_CPU_COUNT, cpu_count), |
1121 | 1123 |
(constants.ISPEC_DISK_COUNT, disk_count), |
1122 | 1124 |
(constants.ISPEC_NIC_COUNT, nic_count), |
1125 |
(constants.ISPEC_SPINDLE_USE, spindle_use), |
|
1123 | 1126 |
] + map((lambda d: (constants.ISPEC_DISK_SIZE, d)), disk_sizes) |
1124 | 1127 |
|
1125 | 1128 |
return filter(None, |
... | ... | |
1141 | 1144 |
""" |
1142 | 1145 |
mem_size = instance.beparams.get(constants.BE_MAXMEM, None) |
1143 | 1146 |
cpu_count = instance.beparams.get(constants.BE_VCPUS, None) |
1147 |
spindle_use = instance.beparams.get(constants.BE_SPINDLE_USAGE, None) |
|
1144 | 1148 |
disk_count = len(instance.disks) |
1145 | 1149 |
disk_sizes = [disk.size for disk in instance.disks] |
1146 | 1150 |
nic_count = len(instance.nics) |
1147 | 1151 |
|
1148 | 1152 |
return _compute_fn(ipolicy, mem_size, cpu_count, disk_count, nic_count, |
1149 |
disk_sizes) |
|
1153 |
disk_sizes, spindle_use)
|
|
1150 | 1154 |
|
1151 | 1155 |
|
1152 | 1156 |
def _ComputeIPolicyInstanceSpecViolation(ipolicy, instance_spec, |
... | ... | |
1166 | 1170 |
disk_count = instance_spec.get(constants.ISPEC_DISK_COUNT, 0) |
1167 | 1171 |
disk_sizes = instance_spec.get(constants.ISPEC_DISK_SIZE, []) |
1168 | 1172 |
nic_count = instance_spec.get(constants.ISPEC_NIC_COUNT, 0) |
1173 |
spindle_use = instance_spec.get(constants.ISPEC_SPINDLE_USE, None) |
|
1169 | 1174 |
|
1170 | 1175 |
return _compute_fn(ipolicy, mem_size, cpu_count, disk_count, nic_count, |
1171 |
disk_sizes) |
|
1176 |
disk_sizes, spindle_use)
|
|
1172 | 1177 |
|
1173 | 1178 |
|
1174 | 1179 |
def _ComputeIPolicyNodeViolation(ipolicy, instance, current_group, |
... | ... | |
9845 | 9850 |
nodenames = [pnode.name] + self.secondaries |
9846 | 9851 |
|
9847 | 9852 |
# Verify instance specs |
9853 |
spindle_use = self.be_full.get(constants.BE_SPINDLE_USAGE, None) |
|
9848 | 9854 |
ispec = { |
9849 | 9855 |
constants.ISPEC_MEM_SIZE: self.be_full.get(constants.BE_MAXMEM, None), |
9850 | 9856 |
constants.ISPEC_CPU_COUNT: self.be_full.get(constants.BE_VCPUS, None), |
9851 | 9857 |
constants.ISPEC_DISK_COUNT: len(self.disks), |
9852 | 9858 |
constants.ISPEC_DISK_SIZE: [disk["size"] for disk in self.disks], |
9853 | 9859 |
constants.ISPEC_NIC_COUNT: len(self.nics), |
9860 |
constants.ISPEC_SPINDLE_USE: spindle_use, |
|
9854 | 9861 |
} |
9855 | 9862 |
|
9856 | 9863 |
group_info = self.cfg.GetNodeGroup(pnode.group) |
Also available in: Unified diff