mirror of
https://github.com/ansible/awx.git
synced 2026-03-11 06:29:31 -02:30
Merge pull request #4 from AlanCoding/elijah_metrics
Minor changes to instance loop structure
This commit is contained in:
@@ -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
|
# 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')
|
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'])
|
tm_instances = TaskManagerInstances(active_tasks, instance_fields=['uuid', 'version', 'capacity', 'cpu', 'memory', 'managed_by_policy', 'enabled'])
|
||||||
for instance in tm_instances.instance_objects:
|
for tm_instance in tm_instances.instances_by_hostname.values():
|
||||||
consumed_capacity = tm_instances[instance.hostname].consumed_capacity
|
instance = tm_instance.obj
|
||||||
instance_info = {
|
instance_info = {
|
||||||
'uuid': instance.uuid,
|
'uuid': instance.uuid,
|
||||||
'version': instance.version,
|
'version': instance.version,
|
||||||
@@ -249,8 +249,8 @@ def instance_info(since, include_hostnames=False, **kwargs):
|
|||||||
'memory': instance.memory,
|
'memory': instance.memory,
|
||||||
'managed_by_policy': instance.managed_by_policy,
|
'managed_by_policy': instance.managed_by_policy,
|
||||||
'enabled': instance.enabled,
|
'enabled': instance.enabled,
|
||||||
'consumed_capacity': consumed_capacity,
|
'consumed_capacity': tm_instance.consumed_capacity,
|
||||||
'remaining_capacity': instance.capacity - consumed_capacity,
|
'remaining_capacity': instance.capacity - tm_instance.consumed_capacity,
|
||||||
}
|
}
|
||||||
if include_hostnames is True:
|
if include_hostnames is True:
|
||||||
instance_info['hostname'] = instance.hostname
|
instance_info['hostname'] = instance.hostname
|
||||||
|
|||||||
@@ -34,14 +34,12 @@ class TaskManagerInstance:
|
|||||||
|
|
||||||
|
|
||||||
class TaskManagerInstances:
|
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.instances_by_hostname = dict()
|
||||||
self.instance_objects = []
|
|
||||||
if instances is None:
|
if instances is None:
|
||||||
instances = Instance.objects.filter(hostname__isnull=False, enabled=True).exclude(node_type='hop').only(*instance_fields)
|
instances = Instance.objects.filter(hostname__isnull=False, enabled=True).exclude(node_type='hop').only(*instance_fields)
|
||||||
for instance in instances:
|
for instance in instances:
|
||||||
self.instances_by_hostname[instance.hostname] = TaskManagerInstance(instance)
|
self.instances_by_hostname[instance.hostname] = TaskManagerInstance(instance)
|
||||||
self.instance_objects.append(instance)
|
|
||||||
|
|
||||||
# initialize remaining capacity based on currently waiting and running tasks
|
# initialize remaining capacity based on currently waiting and running tasks
|
||||||
for task in active_tasks:
|
for task in active_tasks:
|
||||||
|
|||||||
Reference in New Issue
Block a user