From d0991bab9e5d5d02575b96aefa1a42f5f23146cb Mon Sep 17 00:00:00 2001 From: Jeff Bradberry Date: Tue, 1 Jun 2021 11:34:50 -0400 Subject: [PATCH] Expose the EE resolver to the job template detail API endpoints --- awx/api/serializers.py | 13 +++++++++++++ awx/main/models/mixins.py | 6 +++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 3ba2488a5b..f91ebad8f5 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -724,6 +724,19 @@ class UnifiedJobTemplateSerializer(BaseSerializer): else: return super(UnifiedJobTemplateSerializer, self).to_representation(obj) + def get_summary_fields(self, obj): + summary_fields = super().get_summary_fields(obj) + + if self.is_detail_view: + resolved_ee = obj.resolve_execution_environment() + summary_fields['resolved_environment'] = { + field: getattr(resolved_ee, field, None) + for field in SUMMARIZABLE_FK_FIELDS['execution_environment'] + if getattr(resolved_ee, field, None) is not None + } + + return summary_fields + class UnifiedJobSerializer(BaseSerializer): show_capabilities = ['start', 'delete'] diff --git a/awx/main/models/mixins.py b/awx/main/models/mixins.py index 760cce4e47..0f9d9154e1 100644 --- a/awx/main/models/mixins.py +++ b/awx/main/models/mixins.py @@ -477,11 +477,11 @@ class ExecutionEnvironmentMixin(models.Model): if wf_template.execution_environment is not None: return wf_template.execution_environment wf_node = getattr(wf_node.workflow_job, 'unified_job_node', None) - if getattr(self, 'project', None) and self.project.default_environment is not None: + if getattr(self, 'project_id', None) and self.project.default_environment is not None: return self.project.default_environment - if getattr(self, 'organization', None) and self.organization.default_environment is not None: + if getattr(self, 'organization_id', None) and self.organization.default_environment is not None: return self.organization.default_environment - if getattr(self, 'inventory', None) and self.inventory.organization is not None: + if getattr(self, 'inventory_id', None) and self.inventory.organization is not None: if self.inventory.organization.default_environment is not None: return self.inventory.organization.default_environment