From b043b26a070fcfc5b0757ca27a4cdacc85a6a504 Mon Sep 17 00:00:00 2001
From: Jeff Bradberry <jeff.bradberry@gmail.com>
Date: Wed, 8 Jul 2020 14:43:14 -0400
Subject: [PATCH] Add a sublist api view for the UJTs that use a given
 execution environment

---
 awx/api/serializers.py                 | 3 ++-
 awx/api/urls/execution_environments.py | 2 ++
 awx/api/views/__init__.py              | 8 ++++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/awx/api/serializers.py b/awx/api/serializers.py
index 79ef0dcc520b..835c1ec789e0 100644
--- a/awx/api/serializers.py
+++ b/awx/api/serializers.py
@@ -1368,7 +1368,8 @@ class Meta:
     def get_related(self, obj):
         res = super(ExecutionEnvironmentSerializer, self).get_related(obj)
         res.update(
-            activity_stream = self.reverse('api:execution_environment_activity_stream_list', kwargs={'pk': obj.pk}),
+            activity_stream=self.reverse('api:execution_environment_activity_stream_list', kwargs={'pk': obj.pk}),
+            unified_job_templates=self.reverse('api:execution_environment_job_template_list', kwargs={'pk': obj.pk}),
         )
         if obj.organization:
             res['organization'] = self.reverse('api:organization_detail', kwargs={'pk': obj.organization.pk})
diff --git a/awx/api/urls/execution_environments.py b/awx/api/urls/execution_environments.py
index e2310caec384..08f852be0819 100644
--- a/awx/api/urls/execution_environments.py
+++ b/awx/api/urls/execution_environments.py
@@ -3,6 +3,7 @@
 from awx.api.views import (
     ExecutionEnvironmentList,
     ExecutionEnvironmentDetail,
+    ExecutionEnvironmentJobTemplateList,
     ExecutionEnvironmentActivityStreamList,
 )
 
@@ -10,6 +11,7 @@
 urls = [
     url(r'^$', ExecutionEnvironmentList.as_view(), name='execution_environment_list'),
     url(r'^(?P<pk>[0-9]+)/$', ExecutionEnvironmentDetail.as_view(), name='execution_environment_detail'),
+    url(r'^(?P<pk>[0-9]+)/unified_job_templates/$', ExecutionEnvironmentJobTemplateList.as_view(), name='execution_environment_job_template_list'),
     url(r'^(?P<pk>[0-9]+)/activity_stream/$', ExecutionEnvironmentActivityStreamList.as_view(), name='execution_environment_activity_stream_list'),
 ]
 
diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py
index 8d6c1e535e33..c69ae6d3910b 100644
--- a/awx/api/views/__init__.py
+++ b/awx/api/views/__init__.py
@@ -702,6 +702,14 @@ class ExecutionEnvironmentDetail(RetrieveUpdateDestroyAPIView):
     swagger_topic = "Execution Environments"
 
 
+class ExecutionEnvironmentJobTemplateList(SubListAPIView):
+
+    model = models.UnifiedJobTemplate
+    serializer_class = serializers.UnifiedJobTemplateSerializer
+    parent_model = models.ExecutionEnvironment
+    relationship = 'unifiedjobtemplates'
+
+
 class ExecutionEnvironmentActivityStreamList(SubListAPIView):
 
     model = models.ActivityStream