Revision 9353adde

b/lib/masterd/iallocator.py
547 547
    return value
548 548

  
549 549
  @staticmethod
550
  def _ComputeStorageDataFromNodeInfo(node_info, node_name, has_lvm):
551
    """Extract storage data from node info (_not_ legacy node info).
550
  def _ComputeStorageDataFromSpaceInfo(space_info, node_name, has_lvm):
551
    """Extract storage data from node info.
552 552

  
553
    @type node_info: see result of the RPC call node info
554
    @param node_info: the result of the RPC call node info
553
    @type space_info: see result of the RPC call node info
554
    @param space_info: the storage reporting part of the result of the RPC call
555
      node info
555 556
    @type node_name: string
556 557
    @param node_name: the node's name
557 558
    @type has_lvm: boolean
......
561 562
       free_spindles)
562 563

  
563 564
    """
564
    (_, space_info, _) = node_info
565 565
    # TODO: replace this with proper storage reporting
566 566
    if has_lvm:
567 567
      lvm_vg_info = utils.storage.LookupSpaceInfoByStorageType(
......
633 633
        nresult.Raise("Can't get data for node %s" % ninfo.name)
634 634
        node_iinfo[nuuid].Raise("Can't get node instance info from node %s" %
635 635
                                ninfo.name)
636
        (_, _, (hv_info, )) = nresult.payload
636
        (_, space_info, (hv_info, )) = nresult.payload
637 637

  
638 638
        mem_free = self._GetAttributeFromHypervisorNodeData(hv_info, ninfo.name,
639 639
                                                            "memory_free")
......
641 641
        (i_p_mem, i_p_up_mem, mem_free) = self._ComputeInstanceMemory(
642 642
             i_list, node_iinfo, nuuid, mem_free)
643 643
        (total_disk, free_disk, total_spindles, free_spindles) = \
644
            self._ComputeStorageDataFromNodeInfo(nresult.payload, ninfo.name,
645
                                                 has_lvm)
644
            self._ComputeStorageDataFromSpaceInfo(space_info, ninfo.name,
645
                                                  has_lvm)
646 646

  
647 647
        # compute memory used by instances
648 648
        pnr_dyn = {
b/test/py/ganeti.masterd.iallocator_unittest.py
196 196
                       "type": constants.ST_LVM_PV,
197 197
                       "storage_free": 33,
198 198
                       "storage_size": 44}]
199
    self.node_info = ("123", self.space_info, ({},))
200 199

  
201 200
  def testComputeStorageDataFromNodeInfoDefault(self):
202 201
    has_lvm = False
203 202
    node_name = "mynode"
204 203
    (total_disk, free_disk, total_spindles, free_spindles) = \
205 204
        iallocator.IAllocator._ComputeStorageDataFromNodeInfo(
206
            self.node_info, node_name, has_lvm)
205
            self.space_info, node_name, has_lvm)
207 206
    # FIXME: right now, iallocator ignores anything else than LVM, adjust
208 207
    # this test once that arbitrary storage is supported
209 208
    self.assertEqual(0, free_disk)
......
214 213
    node_name = "mynode"
215 214
    (total_disk, free_disk, total_spindles, free_spindles) = \
216 215
        iallocator.IAllocator._ComputeStorageDataFromNodeInfo(
217
            self.node_info, node_name, has_lvm)
216
            self.space_info, node_name, has_lvm)
218 217
    self.assertEqual(self.free_storage_lvm, free_disk)
219 218
    self.assertEqual(self.total_storage_lvm, total_disk)
220 219

  

Also available in: Unified diff