diff options
| author | Dolph Mathews <dolph.mathews@gmail.com> | 2012-03-23 10:23:06 -0500 |
|---|---|---|
| committer | Dolph Mathews <dolph.mathews@gmail.com> | 2012-03-27 16:42:10 -0700 |
| commit | 5c8dcd2f2f1a7645f93f39c3f5784920e2099998 (patch) | |
| tree | a05a0e181f98af04342e0ebade5f262bc94c278b | |
| parent | a7a658093d86fc4c343ef1b69bd82327116299eb (diff) | |
tenant-crud 404 (bug 963056)
tenant-get
tenant-update
tenant-delete
Change-Id: I9e67cea985f546c9ddf6ce6d82a11486099bd524
| -rw-r--r-- | keystone/identity/core.py | 10 | ||||
| -rw-r--r-- | tests/test_keystoneclient.py | 21 |
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() |
