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