Add get node used and free resources

Many strategies need get node used or free resources, we define
two new method for the purpose in ModelRoot class.

Change-Id: I8cb41fd560dbac9a78d25bfdba51799533db83c2
This commit is contained in:
licanwei
2019-08-29 09:23:44 +08:00
parent cdb81e43f6
commit 7eb10eee01
2 changed files with 51 additions and 0 deletions

View File

@@ -201,6 +201,25 @@ class ModelRoot(nx.DiGraph, base.Model):
return node_instances
def get_node_used_resources(self, node):
vcpu_used = 0
memory_used = 0
disk_used = 0
for instance in self.get_node_instances(node):
vcpu_used += instance.vcpus
memory_used += instance.memory
disk_used += instance.disk
return dict(vcpu=vcpu_used, memory=memory_used, disk=disk_used)
def get_node_free_resources(self, node):
resources_used = self.get_node_used_resources(node)
vcpu_free = node.vcpu_capacity-resources_used.get('vcpu')
memory_free = node.memory_mb_capacity-resources_used.get('memory')
disk_free = node.disk_gb_capacity-resources_used.get('disk')
return dict(vcpu=vcpu_free, memory=memory_free, disk=disk_free)
def to_string(self):
return self.to_xml()