summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDolph Mathews <dolph.mathews@gmail.com>2012-03-23 10:23:06 -0500
committerDolph Mathews <dolph.mathews@gmail.com>2012-03-27 16:42:10 -0700
commit5c8dcd2f2f1a7645f93f39c3f5784920e2099998 (patch)
treea05a0e181f98af04342e0ebade5f262bc94c278b
parenta7a658093d86fc4c343ef1b69bd82327116299eb (diff)
tenant-crud 404 (bug 963056)
tenant-get tenant-update tenant-delete Change-Id: I9e67cea985f546c9ddf6ce6d82a11486099bd524
-rw-r--r--keystone/identity/core.py10
-rw-r--r--tests/test_keystoneclient.py21
2 files changed, 30 insertions, 1 deletions
diff --git a/keystone/identity/core.py b/keystone/identity/core.py
index f8af897f..07c48787 100644
--- a/keystone/identity/core.py
+++ b/keystone/identity/core.py
@@ -284,8 +284,9 @@ class TenantController(wsgi.Application):
# TODO(termie): this stuff should probably be moved to middleware
self.assert_admin(context)
tenant = self.identity_api.get_tenant(context, tenant_id)
- if not tenant:
+ if tenant is None:
raise exception.TenantNotFound(tenant_id=tenant_id)
+
return {'tenant': tenant}
# CRUD Extension
@@ -303,12 +304,18 @@ class TenantController(wsgi.Application):
def update_tenant(self, context, tenant_id, tenant):
self.assert_admin(context)
+ if self.identity_api.get_tenant(context, tenant_id) is None:
+ raise exception.TenantNotFound(tenant_id=tenant_id)
+
tenant_ref = self.identity_api.update_tenant(
context, tenant_id, tenant)
return {'tenant': tenant_ref}
def delete_tenant(self, context, tenant_id, **kw):
self.assert_admin(context)
+ if self.identity_api.get_tenant(context, tenant_id) is None:
+ raise exception.TenantNotFound(tenant_id=tenant_id)
+
self.identity_api.delete_tenant(context, tenant_id)
def get_tenant_users(self, context, tenant_id, **kw):
@@ -361,6 +368,7 @@ class UserController(wsgi.Application):
user_ref = self.identity_api.get_user(context, user_id)
if not user_ref:
raise exception.UserNotFound(user_id=user_id)
+
return {'user': user_ref}
def get_users(self, context):
diff --git a/tests/test_keystoneclient.py b/tests/test_keystoneclient.py
index 3600ef1f..7c530133 100644
--- a/tests/test_keystoneclient.py
+++ b/tests/test_keystoneclient.py
@@ -235,6 +235,27 @@ class KeystoneClientTests(object):
self.assertFalse([t for t in client.tenants.list()
if t.id == tenant.id])
+ def test_tenant_delete_404(self):
+ from keystoneclient import exceptions as client_exceptions
+ client = self.get_client(admin=True)
+ self.assertRaises(client_exceptions.NotFound,
+ client.tenants.delete,
+ tenant=uuid.uuid4().hex)
+
+ def test_tenant_get_404(self):
+ from keystoneclient import exceptions as client_exceptions
+ client = self.get_client(admin=True)
+ self.assertRaises(client_exceptions.NotFound,
+ client.tenants.get,
+ tenant_id=uuid.uuid4().hex)
+
+ def test_tenant_update_404(self):
+ from keystoneclient import exceptions as client_exceptions
+ client = self.get_client(admin=True)
+ self.assertRaises(client_exceptions.NotFound,
+ client.tenants.update,
+ tenant_id=uuid.uuid4().hex)
+
def test_tenant_list(self):
client = self.get_client()
tenants = client.tenants.list()