summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-24 05:02:23 +0000
committerGerrit Code Review <review@openstack.org>2012-10-24 05:02:23 +0000
commite0f9ad5d124686926fdcc17d927bc220be7928fa (patch)
tree29e7fd276ed39f2b3cdb2612f74a91af6f1c7d87
parentc6f26ff48147e04921ac812128df3f94c808c80e (diff)
parent00127ab614174f0f2a7f84769e568e14b6083bd6 (diff)
downloadkeystone-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.py17
-rw-r--r--tests/test_content_types.py18
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)