From 0d4e6d7e0bf0177d70f8bafca4b8f8aa7daf9f29 Mon Sep 17 00:00:00 2001 From: Nikhil Jain Date: Wed, 11 Dec 2019 16:04:04 +0530 Subject: [PATCH] do the sum once and store it in a variable which will be reused --- awx/main/analytics/collectors.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/awx/main/analytics/collectors.py b/awx/main/analytics/collectors.py index 1b52f413db..6027bf1556 100644 --- a/awx/main/analytics/collectors.py +++ b/awx/main/analytics/collectors.py @@ -166,6 +166,8 @@ def instance_info(since, include_hostnames=False): instances = models.Instance.objects.values_list('hostname').values( 'uuid', 'version', 'capacity', 'cpu', 'memory', 'managed_by_policy', 'hostname', 'last_isolated_check', 'enabled') for instance in instances: + consumed_capacity = sum(x.task_impact for x in models.UnifiedJob.objects.filter(execution_node=instance['hostname'], + status__in=('running', 'waiting'))) instance_info = { 'uuid': instance['uuid'], 'version': instance['version'], @@ -175,10 +177,8 @@ def instance_info(since, include_hostnames=False): 'managed_by_policy': instance['managed_by_policy'], 'last_isolated_check': _get_isolated_datetime(instance['last_isolated_check']), 'enabled': instance['enabled'], - 'consumed_capacity': sum(x.task_impact for x in models.UnifiedJob.objects.filter(execution_node=instance['hostname'], - status__in=('running', 'waiting'))), - 'remaining_capacity': instance['capacity'] - sum(x.task_impact for x in models.UnifiedJob.objects.filter(execution_node=instance['hostname'], - status__in=('running', 'waiting'))) + 'consumed_capacity': consumed_capacity, + 'remaining_capacity': instance['capacity'] - consumed_capacity } if include_hostnames is True: instance_info['hostname'] = instance['hostname']