Fix bugs
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Sun, 28 Apr 2013 15:27:07 +0000 (11:27 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Sun, 28 Apr 2013 15:27:07 +0000 (11:27 -0400)
plstackapi/core/models/site.py
plstackapi/core/models/slice.py
plstackapi/openstack/driver.py

index ef7db95..b15e35b 100644 (file)
@@ -29,7 +29,6 @@ class Site(PlCoreBase):
         # update the record
         if self.id:
             self.driver.update_tenant(self.tenant_id, 
-                                      name=self.login_base,
                                       description=self.name,
                                       enabled=self.enabled)
 
index dda6553..027ba10 100644 (file)
@@ -39,6 +39,11 @@ class Slice(PlCoreBase):
             router = self.driver.create_router(self.name)
             self.router_id = router['id']
 
+        if self.id:
+            self.driver.update_tenant(self.tenant_id,
+                                      description=self.description,
+                                      enabled=self.enabled)
+
         super(Slice, self).save(*args, **kwds)
 
     def delete(self, *args, **kwds):
index 940be6c..3522b8c 100644 (file)
@@ -67,14 +67,32 @@ class OpenStackDriver:
     def add_user_role(self, user_id, tenant_id, role_name):
         user = self.shell.keystone.users.find(id=user_id)
         tenant = self.shell.keystone.tenants.find(id=tenant_id)
-        role = self.shell.keystone.roles.find(role_name)
-        return tenant.add_user(user, role)
+        role = self.shell.keystone.roles.find(name=role_name)
+
+        role_found = False
+        user_roles = user.list_roles(tenant.id)
+        for user_role in user_roles:
+            if user_role.name == role.name:
+                role_found = True
+        if not role_found:
+            tenant.add_user(user, role)
+
+        return 1
 
     def delete_user_role(self, user_id, tenant_id, role_name):
         user = self.shell.keystone.users.find(id=user_id)
         tenant = self.shell.keystone.tenants.find(id=tenant_id)
-        role = self.shell.keystone.roles.find(role_name)
-        return tenant.delete_user(user, role)
+        role = self.shell.keystone.roles.find(name=role_name)
+
+        role_found = False
+        user_roles = user.list_roles(tenant.id)
+        for user_role in user_roles:
+            if user_role.name == role.name:
+                role_found = True
+        if role_found:
+            tenant.remove_user(user, role)
+
+        return 1 
 
     def update_user(self, id, **kwds):
         return self.shell.keystone.users.update(id, **kwds)