summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-09-13 10:15:54 -0400
committerDan Prince <dan.prince@rackspace.com>2011-09-13 10:15:54 -0400
commita0d2519c783774762e7b9efbcbdb75c55ad69faa (patch)
tree8613ef06589753442cdcbb43522f959c1c52f0ba
parenta0689f84bf45e49916f26c28ce7a56cfc58fb591 (diff)
downloadkeystone-a0d2519c783774762e7b9efbcbdb75c55ad69faa.tar.gz
keystone-a0d2519c783774762e7b9efbcbdb75c55ad69faa.tar.xz
keystone-a0d2519c783774762e7b9efbcbdb75c55ad69faa.zip
Update keystone-manage commands to convert tenant name to id. Fixes #lp849007
Change-Id: Ibcb5e5627fc9bf7c97d839cc28bc46986199dc2a
-rw-r--r--keystone/manage/api.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/keystone/manage/api.py b/keystone/manage/api.py
index ffd5bc25..acd15a58 100644
--- a/keystone/manage/api.py
+++ b/keystone/manage/api.py
@@ -5,6 +5,11 @@ import keystone.backends.models as db_models
def add_user(name, password, tenant=None):
+
+ dbtenant = db_api.TENANT.get_by_name(tenant)
+ if dbtenant:
+ tenant = dbtenant.id
+
obj = db_models.User()
obj.name = name
obj.password = password
@@ -64,7 +69,11 @@ def list_role_assignments(tenant):
def list_roles(tenant=None):
+
if tenant:
+ dbtenant = db_api.TENANT.get_by_name(tenant)
+ if dbtenant:
+ tenant = dbtenant.id
return list_role_assignments(tenant)
else:
objects = db_api.ROLE.get_all()
@@ -78,13 +87,17 @@ def grant_role(role, user, tenant=None):
# translate username to user id
duser = db_api.USER.get_by_name(name=user)
if duser:
- # print 'WARNING: Swapping', user, 'for', duser.id
user = duser.id
+ dbtenant = db_api.TENANT.get_by_name(tenant)
+ if dbtenant:
+ tenant = dbtenant.id
+
obj = db_models.UserRoleAssociation()
obj.role_id = role
obj.user_id = user
obj.tenant_id = tenant
+
return db_api.USER.user_role_add(obj)
@@ -161,6 +174,15 @@ def list_services():
def add_credentials(user, type, key, secrete, tenant=None):
+
+ duser = db_api.USER.get_by_name(name=user)
+ if duser:
+ user = duser.id
+
+ dbtenant = db_api.TENANT.get_by_name(tenant)
+ if dbtenant:
+ tenant = dbtenant.id
+
obj = db_models.Token()
obj.user_id = user
obj.type = type