Minor changes to instance loop structure

This commit is contained in:
Alan Rominger 2022-08-29 14:28:50 -04:00
parent 125801ec5b
commit 2437a84b48
No known key found for this signature in database
GPG Key ID: C2D7EAAA12B63559
2 changed files with 5 additions and 7 deletions

View File

@ -239,8 +239,8 @@ def instance_info(since, include_hostnames=False, **kwargs):
# Use same method that the TaskManager does to compute consumed capacity without querying all running jobs for each Instance
active_tasks = models.UnifiedJob.objects.filter(status__in=['running', 'waiting']).only('task_impact', 'controller_node', 'execution_node')
tm_instances = TaskManagerInstances(active_tasks, instance_fields=['uuid', 'version', 'capacity', 'cpu', 'memory', 'managed_by_policy', 'enabled'])
for instance in tm_instances.instance_objects:
consumed_capacity = tm_instances[instance.hostname].consumed_capacity
for tm_instance in tm_instances.instances_by_hostname.values():
instance = tm_instance.obj
instance_info = {
'uuid': instance.uuid,
'version': instance.version,
@ -249,8 +249,8 @@ def instance_info(since, include_hostnames=False, **kwargs):
'memory': instance.memory,
'managed_by_policy': instance.managed_by_policy,
'enabled': instance.enabled,
'consumed_capacity': consumed_capacity,
'remaining_capacity': instance.capacity - consumed_capacity,
'consumed_capacity': tm_instance.consumed_capacity,
'remaining_capacity': instance.capacity - tm_instance.consumed_capacity,
}
if include_hostnames is True:
instance_info['hostname'] = instance.hostname

View File

@ -34,14 +34,12 @@ class TaskManagerInstance:
class TaskManagerInstances:
def __init__(self, active_tasks, instances=None, instance_fields=['node_type', 'capacity', 'hostname', 'enabled']):
def __init__(self, active_tasks, instances=None, instance_fields=('node_type', 'capacity', 'hostname', 'enabled')):
self.instances_by_hostname = dict()
self.instance_objects = []
if instances is None:
instances = Instance.objects.filter(hostname__isnull=False, enabled=True).exclude(node_type='hop').only(*instance_fields)
for instance in instances:
self.instances_by_hostname[instance.hostname] = TaskManagerInstance(instance)
self.instance_objects.append(instance)
# initialize remaining capacity based on currently waiting and running tasks
for task in active_tasks: