use driver
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Mon, 8 Apr 2013 20:29:38 +0000 (16:29 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Mon, 8 Apr 2013 20:29:38 +0000 (16:29 -0400)
plstackapi/openstack/driver.py
plstackapi/planetstack/api/roles.py
plstackapi/util/json.py [deleted file]
plstackapi/util/jsonhelper.py [deleted file]

index 9d00976..cba7d95 100644 (file)
@@ -14,6 +14,20 @@ class OpenStackDriver:
         else:
             self.shell = OpenStackClient()
 
+    def create_role(self, name): 
+        roles = self.shell.keystone.roles.findall(name=name)
+        if not roles:
+            role = self.shell.keystone.roles.create(name)
+        else:
+            role = roles[0] 
+        return role
+
+    def delete_role(self, name):
+        roles = self.shell.keystone.roles.findall(name=name)
+        for role in roles:
+            self.shell.keystone.roles.delete(role)
+        return 1
+
     def create_tenant(self, tenant_name, enabled, description):
         """Create keystone tenant. Suggested fields: name, description, enabled"""  
         tenants = self.shell.keystone.tenants.findall(name=tenant_name)
index 2c14e2e..34415d8 100644 (file)
@@ -5,16 +5,16 @@ from plstackapi.planetstack.models import *
  
 
 def add_role(auth, name):
-    client = auth_check(auth)
-    keystone_role = client.keystone.roles.create(name)
+    driver = OpenStackDriver(client = auth_check(auth))    
+    keystone_role = driver.create_role(name=name)
     role = Role(role_type=name, role_id=keystone_role.id)
     role.save()
     return role
 
 def delete_role(auth, name):
-    client = auth_check(auth)
+    driver = OpenStackDriver(client = auth_check(auth))   
     role = Role.objects.filter(role_type=name)
-    client.keystone.roles.delete(role.role_id)
+    driver.delete_role(name) 
     role.delete()
     return 1
 
diff --git a/plstackapi/util/json.py b/plstackapi/util/json.py
deleted file mode 100644 (file)
index ceb6dc9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-import json
-
-def parse_request(request):
-    d = {}
-    for (k,v) in request.items():
-        d[k] = json.loads(v) 
-
diff --git a/plstackapi/util/jsonhelper.py b/plstackapi/util/jsonhelper.py
deleted file mode 100644 (file)
index ceb6dc9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-import json
-
-def parse_request(request):
-    d = {}
-    for (k,v) in request.items():
-        d[k] = json.loads(v) 
-