From cce7af3d197ad4db037626fec35af79dde26bd6f Mon Sep 17 00:00:00 2001 From: Wayne Witzel III Date: Wed, 18 May 2016 14:21:30 -0400 Subject: [PATCH] adds related `roles` for InventoryScript --- awx/api/serializers.py | 3 +++ awx/api/urls.py | 1 + awx/api/views.py | 12 ++++++++++++ 3 files changed, 16 insertions(+) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 89e8c6d719..9b3454afb0 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -1261,6 +1261,9 @@ class CustomInventoryScriptSerializer(BaseSerializer): def get_related(self, obj): res = super(CustomInventoryScriptSerializer, self).get_related(obj) + res.update(dict( + roles = reverse('api:inventory_script_roles_list', args=(obj.pk,)), + )) if obj.organization: res['organization'] = reverse('api:organization_detail', args=(obj.organization.pk,)) diff --git a/awx/api/urls.py b/awx/api/urls.py index c05cf30366..9ed4af3c70 100644 --- a/awx/api/urls.py +++ b/awx/api/urls.py @@ -155,6 +155,7 @@ inventory_update_urls = patterns('awx.api.views', inventory_script_urls = patterns('awx.api.views', url(r'^$', 'inventory_script_list'), url(r'^(?P[0-9]+)/$', 'inventory_script_detail'), + url(r'^(?P[0-9]+)/roles/$', 'inventory_script_roles_list'), ) credential_urls = patterns('awx.api.views', diff --git a/awx/api/views.py b/awx/api/views.py index 5ba7b5e56e..1736db2932 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -1424,6 +1424,18 @@ class InventoryScriptDetail(RetrieveUpdateDestroyAPIView): inv_src.save() return super(InventoryScriptDetail, self).destroy(request, *args, **kwargs) +class InventoryScriptRolesList(SubListAPIView): + + model = Role + serializer_class = RoleSerializer + parent_model = CustomInventoryScript + new_in_300 = True + + def get_queryset(self): + po = self.get_parent_object() + content_type = ContentType.objects.get_for_model(self.parent_model) + return Role.objects.filter(content_type=content_type, object_id=po.pk).all() + class InventoryList(ListCreateAPIView): model = Inventory