diff --git a/CHANGES.rst b/CHANGES.rst index 4ec579d..befd663 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,10 +1,10 @@ ChangeLog ========= -`1.8.1 (unreleased) `_ +`1.8.1 (2019-06-18) `_ -------------------------------------------------------------------------------------------- -* No changes yet. +* Call api-account with query params in ``get_resources`` function `1.8.0 (2019-01-28) `_ -------------------------------------------------------------------------------------------- diff --git a/scaleway/apis/api_account.py b/scaleway/apis/api_account.py index a204253..53611be 100644 --- a/scaleway/apis/api_account.py +++ b/scaleway/apis/api_account.py @@ -108,8 +108,26 @@ def get_resources(self, service=None, name=None, resource=None, else: return [] + query_params = { + "include_locked": include_locked, + } + + if resource: + resources = resource.split(":") + query_params["organization_key"] = resources[0] + + if len(resources) == 2: + query_params["resource_key"] = resources[1] + + if name: + permissions = name.split(":") + query_params["name"] = permissions[0] + + if len(permissions) == 2: + query_params["permission"] = permissions[1] + try: - response = query.get(include_locked=include_locked) + response = query.get(**query_params) except slumber.exceptions.HttpClientError as exc: if exc.response.status_code in (400, 404): raise BadToken() diff --git a/scaleway/tests/apis/test_api_account.py b/scaleway/tests/apis/test_api_account.py index 5e586f7..6518a7d 100644 --- a/scaleway/tests/apis/test_api_account.py +++ b/scaleway/tests/apis/test_api_account.py @@ -145,6 +145,12 @@ def compare_results(permissions, service=None, name=None, service='compute', name='can_write', result=[]) + compare_results( + self.fake_permissions, + service='compute', name='can_delete', resource='server1:*', + result=['server1'] + ) + # Nested permissions compare_results(self.fake_permissions, service='account', name='token:read',