From 843833156392b5d92d3e74ad1488f455be799933 Mon Sep 17 00:00:00 2001 From: chris meyers Date: Wed, 28 Mar 2018 15:57:14 -0400 Subject: [PATCH 1/2] make jobs_running more rich in OPTIONS * Expose jobs_running as an IntegerField --- awx/api/serializers.py | 9 ++++++--- awx/main/models/ha.py | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 3a6ebf85e8..41b97c19a9 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4506,6 +4506,12 @@ class InstanceSerializer(BaseSerializer): consumed_capacity = serializers.SerializerMethodField() percent_capacity_remaining = serializers.SerializerMethodField() jobs_running = serializers.SerializerMethodField() + jobs_running = serializers.IntegerField( + help_text=_('Count of jobs in the running or waiting state that ' + 'are targeted for this instance'), + read_only=True + ) + class Meta: model = Instance @@ -4529,9 +4535,6 @@ class InstanceSerializer(BaseSerializer): else: return float("{0:.2f}".format(((float(obj.capacity) - float(obj.consumed_capacity)) / (float(obj.capacity))) * 100)) - def get_jobs_running(self, obj): - return UnifiedJob.objects.filter(execution_node=obj.hostname, status__in=('running', 'waiting',)).count() - class InstanceGroupSerializer(BaseSerializer): diff --git a/awx/main/models/ha.py b/awx/main/models/ha.py index 3356dc3a5d..b7e50ec2b4 100644 --- a/awx/main/models/ha.py +++ b/awx/main/models/ha.py @@ -85,6 +85,10 @@ class Instance(models.Model): # NOTE: TODO: Likely to repurpose this once standalone ramparts are a thing return "awx" + @property + def jobs_running(self): + return UnifiedJob.objects.filter(execution_node=self.hostname, status__in=('running', 'waiting',)).count() + def is_lost(self, ref_time=None, isolated=False): if ref_time is None: ref_time = now() From bf6412ea063b53622ce5e870743847be01ba4936 Mon Sep 17 00:00:00 2001 From: chris meyers Date: Wed, 28 Mar 2018 15:58:14 -0400 Subject: [PATCH 2/2] fix api browser endpoint name * Endpoint exposes all jobs associated with an Instance. This is what we want. Align the endpoint description with this behavior by removing the word running. --- awx/api/serializers.py | 1 - awx/api/views.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 41b97c19a9..685331d4ce 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4505,7 +4505,6 @@ class InstanceSerializer(BaseSerializer): consumed_capacity = serializers.SerializerMethodField() percent_capacity_remaining = serializers.SerializerMethodField() - jobs_running = serializers.SerializerMethodField() jobs_running = serializers.IntegerField( help_text=_('Count of jobs in the running or waiting state that ' 'are targeted for this instance'), diff --git a/awx/api/views.py b/awx/api/views.py index d5ae7782c6..d3378c127d 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -631,7 +631,7 @@ class InstanceDetail(RetrieveUpdateAPIView): class InstanceUnifiedJobsList(SubListAPIView): - view_name = _("Instance Running Jobs") + view_name = _("Instance Jobs") model = UnifiedJob serializer_class = UnifiedJobSerializer parent_model = Instance