From 5c8dcd2f2f1a7645f93f39c3f5784920e2099998 Mon Sep 17 00:00:00 2001 From: Dolph Mathews Date: Fri, 23 Mar 2012 10:23:06 -0500 Subject: tenant-crud 404 (bug 963056) tenant-get tenant-update tenant-delete Change-Id: I9e67cea985f546c9ddf6ce6d82a11486099bd524 --- keystone/identity/core.py | 10 +++++++++- tests/test_keystoneclient.py | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) 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() -- cgit