diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 572e690ce6..491e76ddb7 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -953,6 +953,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,)), + job_templates = reverse('api:inventory_job_template_list', args=(obj.pk,)), scan_job_templates = reverse('api:inventory_scan_job_template_list', args=(obj.pk,)), ad_hoc_commands = reverse('api:inventory_ad_hoc_commands_list', args=(obj.pk,)), #single_fact = reverse('api:inventory_single_fact_view', args=(obj.pk,)), diff --git a/awx/api/urls.py b/awx/api/urls.py index 2b3a93d852..efee8c4cdd 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]+)/job_templates/$', 'inventory_job_template_list'), url(r'^(?P[0-9]+)/scan_job_templates/$', 'inventory_scan_job_template_list'), url(r'^(?P[0-9]+)/ad_hoc_commands/$', 'inventory_ad_hoc_commands_list'), #url(r'^(?P[0-9]+)/single_fact/$', 'inventory_single_fact_view'), diff --git a/awx/api/views.py b/awx/api/views.py index 9a41e779ea..c9b6bb23f4 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -1111,6 +1111,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 InventoryJobTemplateList(SubListAPIView): + + model = JobTemplate + serializer_class = JobTemplateSerializer + parent_model = Inventory + relationship = 'jobtemplates' + new_in_300 = 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(inventory=parent) + class InventoryScanJobTemplateList(SubListAPIView): model = JobTemplate