Merge pull request #6213 from ryanpetrello/new_credential_model

add a new read-only view for `/api/v2/credential_types/N/credentials/`
This commit is contained in:
Ryan Petrello 2017-05-09 13:14:51 -04:00 committed by GitHub
commit b7438288cc
3 changed files with 20 additions and 0 deletions

View File

@ -1867,6 +1867,15 @@ class CredentialTypeSerializer(BaseSerializer):
raise serializers.ValidationError({"inputs": _("'ask_at_runtime' is not supported for custom credentials.")})
return super(CredentialTypeSerializer, self).validate(attrs)
def get_related(self, obj):
res = super(CredentialTypeSerializer, self).get_related(obj)
res['credentials'] = reverse(
'api:credential_type_credential_list',
kwargs={'pk': obj.pk},
request=self.context.get('request')
)
return res
# TODO: remove when API v1 is removed
@six.add_metaclass(BaseSerializerMetaclass)

View File

@ -166,6 +166,7 @@ inventory_script_urls = patterns('awx.api.views',
credential_type_urls = patterns('awx.api.views',
url(r'^$', 'credential_type_list'),
url(r'^(?P<pk>[0-9]+)/$', 'credential_type_detail'),
url(r'^(?P<pk>[0-9]+)/credentials/$', 'credential_type_credential_list'),
)
credential_urls = patterns('awx.api.views',

View File

@ -1511,6 +1511,16 @@ class CredentialTypeDetail(RetrieveUpdateDestroyAPIView):
return super(CredentialTypeDetail, self).destroy(request, *args, **kwargs)
class CredentialTypeCredentialList(SubListAPIView):
model = Credential
parent_model = CredentialType
relationship = 'credentials'
serializer_class = CredentialSerializer
new_in_320 = True
new_in_api_v2 = True
class CredentialList(ListCreateAPIView):
model = Credential