From c4afaad96ccdd19f2a22c74c7ab8111e31cd112b Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Fri, 6 Mar 2015 11:13:36 -0500 Subject: [PATCH] Provide access to scan job templates from the inventory related fields --- awx/api/serializers.py | 1 + awx/api/urls.py | 1 + awx/api/views.py | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 369fc92d1e..8cbb7708f0 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -745,6 +745,7 @@ class InventorySerializer(BaseSerializerWithVariables): tree = reverse('api:inventory_tree_view', args=(obj.pk,)), inventory_sources = reverse('api:inventory_inventory_sources_list', args=(obj.pk,)), activity_stream = reverse('api:inventory_activity_stream_list', args=(obj.pk,)), + scan_job_templates = reverse('api:inventory_scan_job_template_list', args=(obj.pk,)), )) if obj.organization and obj.organization.active: res['organization'] = reverse('api:organization_detail', args=(obj.organization.pk,)) diff --git a/awx/api/urls.py b/awx/api/urls.py index fc649fc80a..01ffd69db2 100644 --- a/awx/api/urls.py +++ b/awx/api/urls.py @@ -73,6 +73,7 @@ inventory_urls = patterns('awx.api.views', url(r'^(?P[0-9]+)/tree/$', 'inventory_tree_view'), url(r'^(?P[0-9]+)/inventory_sources/$', 'inventory_inventory_sources_list'), url(r'^(?P[0-9]+)/activity_stream/$', 'inventory_activity_stream_list'), + url(r'^(?P[0-9]+)/scan_job_templates/$', 'inventory_scan_job_template_list'), ) host_urls = patterns('awx.api.views', diff --git a/awx/api/views.py b/awx/api/views.py index 5587c49e3d..660ccce4d8 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -907,6 +907,20 @@ class InventoryActivityStreamList(SubListAPIView): qs = self.request.user.get_queryset(self.model) return qs.filter(Q(inventory=parent) | Q(host__in=parent.hosts.all()) | Q(group__in=parent.groups.all())) +class InventoryScanJobTemplateList(SubListAPIView): + + model = JobTemplate + serializer_class = JobTemplateSerializer + parent_model = Inventory + relationship = 'jobtemplates' + new_in_220 = True + + def get_queryset(self): + parent = self.get_parent_object() + self.check_parent_access(parent) + qs = self.request.user.get_queryset(self.model) + return qs.filter(job_type=PERM_INVENTORY_SCAN, inventory=parent) + class HostList(ListCreateAPIView):