diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-10-24 05:02:23 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-10-24 05:02:23 +0000 |
| commit | e0f9ad5d124686926fdcc17d927bc220be7928fa (patch) | |
| tree | 29e7fd276ed39f2b3cdb2612f74a91af6f1c7d87 | |
| parent | c6f26ff48147e04921ac812128df3f94c808c80e (diff) | |
| parent | 00127ab614174f0f2a7f84769e568e14b6083bd6 (diff) | |
| download | keystone-e0f9ad5d124686926fdcc17d927bc220be7928fa.tar.gz keystone-e0f9ad5d124686926fdcc17d927bc220be7928fa.tar.xz keystone-e0f9ad5d124686926fdcc17d927bc220be7928fa.zip | |
Merge "Adding handling for get user/tenant by name"
| -rw-r--r-- | keystone/identity/core.py | 17 | ||||
| -rw-r--r-- | tests/test_content_types.py | 18 |
2 files changed, 35 insertions, 0 deletions
diff --git a/keystone/identity/core.py b/keystone/identity/core.py index e0297432..08f599f9 100644 --- a/keystone/identity/core.py +++ b/keystone/identity/core.py @@ -341,6 +341,10 @@ class TenantController(wsgi.Application): def get_all_tenants(self, context, **kw): """Gets a list of all tenants for an admin user.""" + if 'name' in context['query_string']: + return self.get_tenant_by_name( + context, context['query_string'].get('name')) + self.assert_admin(context) tenant_refs = self.identity_api.get_tenants(context) params = { @@ -385,6 +389,11 @@ class TenantController(wsgi.Application): self.assert_admin(context) return {'tenant': self.identity_api.get_tenant(context, tenant_id)} + def get_tenant_by_name(self, context, tenant_name): + self.assert_admin(context) + return {'tenant': self.identity_api.get_tenant_by_name( + context, tenant_name)} + # CRUD Extension def create_tenant(self, context, tenant): tenant_ref = self._normalize_dict(tenant) @@ -463,9 +472,17 @@ class UserController(wsgi.Application): def get_users(self, context): # NOTE(termie): i can't imagine that this really wants all the data # about every single user in the system... + if 'name' in context['query_string']: + return self.get_user_by_name( + context, context['query_string'].get('name')) + self.assert_admin(context) return {'users': self.identity_api.list_users(context)} + def get_user_by_name(self, context, user_name): + self.assert_admin(context) + return {'user': self.identity_api.get_user_by_name(context, user_name)} + # CRUD extension def create_user(self, context, user): user = self._normalize_dict(user) diff --git a/tests/test_content_types.py b/tests/test_content_types.py index ea501c09..95d1256a 100644 --- a/tests/test_content_types.py +++ b/tests/test_content_types.py @@ -430,6 +430,15 @@ class CoreApiTests(object): token=token) self.assertValidTenantResponse(r) + def test_get_tenant_by_name(self): + token = self.get_scoped_token() + r = self.admin_request( + path='/v2.0/tenants?name=%(tenant_name)s' % { + 'tenant_name': self.tenant_bar['name'], + }, + token=token) + self.assertValidTenantResponse(r) + def test_get_user_roles(self): raise nose.exc.SkipTest('Blocked by bug 933565') @@ -460,6 +469,15 @@ class CoreApiTests(object): token=token) self.assertValidUserResponse(r) + def test_get_user_by_name(self): + token = self.get_scoped_token() + r = self.admin_request( + path='/v2.0/users?name=%(user_name)s' % { + 'user_name': self.user_foo['name'], + }, + token=token) + self.assertValidUserResponse(r) + def test_error_response(self): """This triggers assertValidErrorResponse by convention.""" self.public_request(path='/v2.0/tenants', expected_status=401) |
