summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-03-14 06:08:00 +0000
committerGerrit Code Review <review@openstack.org>2012-03-14 06:08:00 +0000
commitfb4cbe9d3766ac0ccbe746114d5c6745bc91e002 (patch)
treedcce5ed2ecf7385e823deb5b0c6eb1bd86c6bebf
parent5b3e05bbabd5366461630327e4498fe582ff8ab7 (diff)
parentdc41cb5c11951b416d3e379bc944ac85737b979a (diff)
downloadkeystone-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.py3
-rw-r--r--keystone/identity/core.py3
-rw-r--r--tests/test_keystoneclient.py56
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()