give admin user the admin role to every tenant created by OpenStackDriver
[plstackapi.git] / plstackapi / openstack / driver.py
index 3522b8c..a1a3333 100644 (file)
@@ -9,6 +9,9 @@ class OpenStackDriver:
         else:
             self.config = Config() 
 
+        self.admin_client = OpenStackClient()
+        self.admin_user = self.admin_client.keystone.users.find(name=self.admin_client.keystone.username)
+
         if client:
             self.shell = client
         else:
@@ -37,6 +40,10 @@ class OpenStackDriver:
             tenant = self.shell.keystone.tenants.create(**fields)
         else:
             tenant = tenants[0]
+
+        # always give the admin user the admin role to any tenant created 
+        # by the driver. 
+        self.add_user_role(self.admin_user.id, tenant.id, 'admin')
         return tenant
 
     def update_tenant(self, id, **kwds):
@@ -103,6 +110,7 @@ class OpenStackDriver:
             router = routers[0]
         else:
             router = self.shell.quantum.create_router({'router': {'name': name}})['router']
+        # add router to external network
         if set_gateway:
             nets = self.shell.quantum.list_networks()['networks']
             for net in nets:
@@ -116,6 +124,11 @@ class OpenStackDriver:
         routers = self.shell.quantum.list_routers(id=id)['routers']
         for router in routers:
             self.shell.quantum.delete_router(router['id'])
+            # remove router form external network
+            #nets = self.shell.quantum.list_networks()['networks']
+            #for net in nets:
+            #    if net['router:external'] == True:
+            #        self.shell.quantum.remove_gateway_router(router['id'])
 
     def add_router_interface(self, router_id, subnet_id):
         router = self.shell.quantum.show_router(router_id)['router']
@@ -152,7 +165,7 @@ class OpenStackDriver:
     def delete_network_ports(self, network_id):
         ports = self.shell.quantum.list_ports()['ports']
         for port in ports:
-            if port['network_id'] == 'network_id':
+            if port['network_id'] == network_id:
                 self.shell.quantum.delete_port(port['id'])
         return 1