observer now supports remote openstack deployments
[plstackapi.git] / planetstack / openstack / driver.py
index 8224c17..174cf85 100644 (file)
@@ -12,37 +12,39 @@ manager_enabled = Config().api_nova_enabled
 
 class OpenStackDriver:
 
-    def __init__(self, config = None, client=None): 
+    def __init__(self, config = None, client=None, deployment=None):
         if config:
             self.config = Config(config)
         else:
-            self.config = Config() 
+            self.config = Config()
 
-        self.admin_client = OpenStackClient()
+        self.admin_client = OpenStackClient(deployment=deployment)
         self.admin_user = self.admin_client.keystone.users.find(name=self.admin_client.keystone.username)
 
         if client:
             self.shell = client
         else:
-            self.shell = OpenStackClient()
+            self.shell = OpenStackClient(deployment=deployment)
 
         self.enabled = manager_enabled
         self.has_openstack = has_openstack
 
-    def client_driver(self, caller=None, tenant=None):
+    def client_driver(self, caller=None, tenant=None, deployment=None):
         if caller:
             auth = {'username': caller.email,
                     'password': hashlib.md5(caller.password).hexdigest()[:6],
                     'tenant': tenant}
-            client = OpenStackClient(**auth)
+            client = OpenStackClient(deployment=deployment, **auth)
         else:
-            client = OpenStackClient(tenant=tenant)
-        driver = OpenStackDriver(client=client)
+            client = OpenStackClient(tenant=tenant, deployment=deployment)
+
+        driver = OpenStackDriver(client=client, deployment=deployment)
         return driver
 
-    def admin_driver(self, tenant=None):
-        client = OpenStackClient(tenant=tenant)
-        driver = OpenStackDriver(client=client) 
+    def admin_driver(self, tenant=None, deployment=None):
+        client = OpenStackClient(tenant=tenant, deployment=deployment)
+        driver = OpenStackDriver(client=client, deployment=deployment)
+        return driver    
 
     def create_role(self, name):
         roles = self.shell.keystone.roles.findall(name=name)