diff options
author | Jenkins <jenkins@review.openstack.org> | 2012-03-14 06:08:00 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2012-03-14 06:08:00 +0000 |
commit | fb4cbe9d3766ac0ccbe746114d5c6745bc91e002 (patch) | |
tree | dcce5ed2ecf7385e823deb5b0c6eb1bd86c6bebf | |
parent | 5b3e05bbabd5366461630327e4498fe582ff8ab7 (diff) | |
parent | dc41cb5c11951b416d3e379bc944ac85737b979a (diff) | |
download | keystone-fb4cbe9d3766ac0ccbe746114d5c6745bc91e002.tar.gz keystone-fb4cbe9d3766ac0ccbe746114d5c6745bc91e002.tar.xz keystone-fb4cbe9d3766ac0ccbe746114d5c6745bc91e002.zip |
Merge "Failing to update tenants (bug 953678, bug 954673)"
-rw-r--r-- | keystone/identity/backends/kvs.py | 3 | ||||
-rw-r--r-- | keystone/identity/core.py | 3 | ||||
-rw-r--r-- | tests/test_keystoneclient.py | 56 |
3 files changed, 47 insertions, 15 deletions
diff --git a/keystone/identity/backends/kvs.py b/keystone/identity/backends/kvs.py index 1e1c6ad6..4d93fcc3 100644 --- a/keystone/identity/backends/kvs.py +++ b/keystone/identity/backends/kvs.py @@ -204,11 +204,12 @@ class Identity(kvs.Base, identity.Driver): # get the old name and delete it too old_tenant = self.db.get('tenant-%s' % tenant_id) new_tenant = old_tenant.copy() + new_tenant.update(tenant) new_tenant['id'] = tenant_id self.db.delete('tenant_name-%s' % old_tenant['name']) self.db.set('tenant-%s' % tenant_id, new_tenant) self.db.set('tenant_name-%s' % new_tenant['name'], new_tenant) - return tenant + return new_tenant def delete_tenant(self, tenant_id): old_tenant = self.db.get('tenant-%s' % tenant_id) diff --git a/keystone/identity/core.py b/keystone/identity/core.py index 0806b353..3e141766 100644 --- a/keystone/identity/core.py +++ b/keystone/identity/core.py @@ -343,7 +343,8 @@ class TenantController(wsgi.Application): tenant_refs = tenant_refs[page_idx:limit] for x in tenant_refs: - x['enabled'] = True + if 'enabled' not in x: + x['enabled'] = True o = {'tenants': tenant_refs, 'tenants_links': []} return o diff --git a/tests/test_keystoneclient.py b/tests/test_keystoneclient.py index cd7bd60c..4029ea76 100644 --- a/tests/test_keystoneclient.py +++ b/tests/test_keystoneclient.py @@ -191,27 +191,57 @@ class KeystoneClientTests(object): def test_tenant_create_update_and_delete(self): from keystoneclient import exceptions as client_exceptions - test_tenant = 'new_tenant' + tenant_name = 'original_tenant' + tenant_description = 'My original tenant!' + tenant_enabled = True client = self.get_client(admin=True) - tenant = client.tenants.create(tenant_name=test_tenant, - description="My new tenant!", - enabled=True) - self.assertEquals(tenant.name, test_tenant) - tenant = client.tenants.get(tenant_id=tenant.id) - self.assertEquals(tenant.name, test_tenant) + # create, get, and list a tenant + tenant = client.tenants.create(tenant_name=tenant_name, + description=tenant_description, + enabled=tenant_enabled) + self.assertEquals(tenant.name, tenant_name) + self.assertEquals(tenant.description, tenant_description) + self.assertEquals(tenant.enabled, tenant_enabled) + tenant = client.tenants.get(tenant_id=tenant.id) + self.assertEquals(tenant.name, tenant_name) + self.assertEquals(tenant.description, tenant_description) + self.assertEquals(tenant.enabled, tenant_enabled) + + tenant = [t for t in client.tenants.list() if t.id == tenant.id].pop() + self.assertEquals(tenant.name, tenant_name) + self.assertEquals(tenant.description, tenant_description) + self.assertEquals(tenant.enabled, tenant_enabled) + + # update, get, and list a tenant + tenant_name = 'updated_tenant' + tenant_description = 'Updated tenant!' + tenant_enabled = False tenant = client.tenants.update(tenant_id=tenant.id, - tenant_name='new_tenant2', - enabled=False, - description='new description') - self.assertEquals(tenant.name, 'new_tenant2') - self.assertFalse(tenant.enabled) - self.assertEquals(tenant.description, 'new description') + tenant_name=tenant_name, + enabled=tenant_enabled, + description=tenant_description) + self.assertEquals(tenant.name, tenant_name) + self.assertEquals(tenant.description, tenant_description) + self.assertEquals(tenant.enabled, tenant_enabled) + + tenant = client.tenants.get(tenant_id=tenant.id) + self.assertEquals(tenant.name, tenant_name) + self.assertEquals(tenant.description, tenant_description) + self.assertEquals(tenant.enabled, tenant_enabled) + + tenant = [t for t in client.tenants.list() if t.id == tenant.id].pop() + self.assertEquals(tenant.name, tenant_name) + self.assertEquals(tenant.description, tenant_description) + self.assertEquals(tenant.enabled, tenant_enabled) + # delete, get, and list a tenant client.tenants.delete(tenant=tenant.id) self.assertRaises(client_exceptions.NotFound, client.tenants.get, tenant.id) + self.assertFalse([t for t in client.tenants.list() + if t.id == tenant.id]) def test_tenant_list(self): client = self.get_client() |