Add resource capacity property

Resource(VCPU, memory and disk) capacity need to be calculated
through formula: capacity = (total-reserved)*ratio.

Partially Implements: blueprint improve-compute-data-model

Change-Id: I15ca66dd2c3a21c5acfebf6f04fa6601aff7918f
This commit is contained in:
licanwei
2019-07-27 15:41:04 +08:00
parent 9b4693a105
commit 0b25c884e6
2 changed files with 21 additions and 6 deletions

View File

@@ -56,6 +56,18 @@ class ComputeNode(compute_resource.ComputeResource):
def accept(self, visitor):
raise NotImplementedError()
@property
def memory_mb_capacity(self):
return (self.memory-self.memory_mb_reserved)*self.memory_ratio
@property
def disk_gb_capacity(self):
return (self.disk-self.disk_gb_reserved)*self.disk_ratio
@property
def vcpus_capacity(self):
return (self.vcpus-self.vcpu_reserved)*self.vcpu_ratio
@property
def memory_mb_free(self):
total = (self.memory-self.memory_mb_reserved)*self.memory_ratio

View File

@@ -152,16 +152,19 @@ class TestNovaClusterDataModelCollector(base.TestCase):
self.assertEqual(node.uuid, '160a0e7b-8b0b-4854-8257-9c71dff4efcc')
self.assertEqual(instance.uuid, 'ef500f7e-dac8-470f-960c-169486fce71b')
memory_total = node.memory - node.memory_mb_reserved
memory_free = memory_total * node.memory_ratio - node.memory_mb_used
memory_total = (node.memory-node.memory_mb_reserved)*node.memory_ratio
self.assertEqual(node.memory_mb_capacity, memory_total)
memory_free = memory_total - node.memory_mb_used
self.assertEqual(node.memory_mb_free, memory_free)
disk_total = node.disk_capacity - node.disk_gb_reserved
disk_free = disk_total * node.disk_ratio - node.disk_gb_used
disk_total = (node.disk_capacity-node.disk_gb_reserved)*node.disk_ratio
self.assertEqual(node.disk_gb_capacity, disk_total)
disk_free = disk_total - node.disk_gb_used
self.assertEqual(node.disk_gb_free, disk_free)
vcpus_total = node.vcpus - node.vcpu_reserved
vcpus_free = vcpus_total * node.vcpu_ratio - node.vcpus_used
vcpus_total = (node.vcpus-node.vcpu_reserved)*node.vcpu_ratio
self.assertEqual(node.vcpus_capacity, vcpus_total)
vcpus_free = vcpus_total - node.vcpus_used
self.assertEqual(node.vcpus_free, vcpus_free)
m_nova_helper.get_compute_node_by_name.assert_called_once_with(