try to resolve differnces between name of admin role at different deployments running...
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Sat, 29 Mar 2014 00:09:21 +0000 (20:09 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Sat, 29 Mar 2014 00:09:21 +0000 (20:09 -0400)
planetstack/openstack/driver.py

index 619a8ed..59847e4 100644 (file)
@@ -116,7 +116,18 @@ class OpenStackDriver:
     def add_user_role(self, kuser_id, tenant_id, role_name):
         user = self.shell.keystone.users.find(id=kuser_id)
         tenant = self.shell.keystone.tenants.find(id=tenant_id)
-        role = self.shell.keystone.roles.find(name=role_name)
+        # admin role can be lowercase or title. Look for both
+        role = None
+        if role_name.lower() == 'admin':
+            for admin_role_name in ['admin', 'Admin']:
+                roles = self.shell.keystone.roles.findall(name=admin_role_name)
+                if roles:
+                    role = roles[0]
+                    break
+        
+        if not role:
+            # look up non admin role or force exception when admin role isnt found 
+            role = self.shell.keystone.roles.find(name=role_name)                   
 
         role_found = False
         user_roles = user.list_roles(tenant.id)