From 28f44c3ab0de91e643bde693dba7583fe5f77736 Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Tue, 11 Jul 2017 13:54:54 -0400 Subject: [PATCH] filter Insights credentials from /api/v1/credentials/ see: #6978 see: #6088 --- awx/api/filters.py | 2 ++ .../tests/functional/api/test_credential.py | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/awx/api/filters.py b/awx/api/filters.py index 0a243f9d33..d01bded7f9 100644 --- a/awx/api/filters.py +++ b/awx/api/filters.py @@ -39,9 +39,11 @@ class V1CredentialFilterBackend(BaseFilterBackend): ''' def filter_queryset(self, request, queryset, view): + # TODO: remove in 3.3 from awx.api.versioning import get_request_version if get_request_version(request) == 1: queryset = queryset.filter(credential_type__managed_by_tower=True) + queryset = queryset.filter(~Q(credential_type__kind='insights')) return queryset diff --git a/awx/main/tests/functional/api/test_credential.py b/awx/main/tests/functional/api/test_credential.py index e1b5cbe8f9..204b44e03c 100644 --- a/awx/main/tests/functional/api/test_credential.py +++ b/awx/main/tests/functional/api/test_credential.py @@ -67,6 +67,29 @@ def test_filter_by_v1_kind_with_vault(get, admin, organization): assert response.data['count'] == 2 +@pytest.mark.django_db +def test_insights_credentials_not_in_v1_api_list(get, admin, organization): + credential_type = CredentialType.defaults['insights']() + credential_type.save() + cred = Credential( + credential_type=credential_type, + name='Best credential ever', + organization=organization, + inputs={ + 'username': u'joe', + 'password': u'secret' + } + ) + cred.save() + + response = get( + reverse('api:credential_list', kwargs={'version': 'v1'}), + admin + ) + assert response.status_code == 200 + assert response.data['count'] == 0 + + @pytest.mark.django_db def test_custom_credentials_not_in_v1_api_list(get, admin, organization): """