Merge "Support for cfg-file translation to openmano" into v1.1
[osm/SO.git] / rwcal / plugins / vala / rwcal_openstack / rift / rwcal / openstack / openstack_drv.py
index ce27e6a..191a06f 100644 (file)
@@ -72,6 +72,18 @@ class KeystoneDriver(object):
         """
         return self._tenant_name
 
+    def get_user_domain_name(self):
+        """
+        Returns None as this field does not exist for v2.
+        """
+        return None;
+
+    def get_project_domain_name(self):
+        """
+        Returns None as this field does not exist for v2.
+        """
+        return None;
+
     def _get_keystone_connection(self):
         """
         Returns object of class python-keystoneclient class
@@ -207,7 +219,7 @@ class KeystoneDriverV2(KeystoneDriver):
     """
     Driver class for keystoneclient V2 APIs
     """
-    def __init__(self, username, password, auth_url,tenant_name, insecure):
+    def __init__(self, username, password, auth_url,tenant_name, insecure, region):
         """
         Constructor for KeystoneDriverV3 class
         Arguments:
@@ -215,7 +227,7 @@ class KeystoneDriverV2(KeystoneDriver):
         password (string)  : Password
         auth_url (string)  : Authentication URL
         tenant_name(string): Tenant Name
-
+        region (string)    : Region name
         Returns: None
         """
         self._username    = username
@@ -223,6 +235,7 @@ class KeystoneDriverV2(KeystoneDriver):
         self._auth_url    = auth_url
         self._tenant_name = tenant_name
         self._insecure    = insecure
+        self._region      = region
         super(KeystoneDriverV2, self).__init__(ksclientv2.Client)
 
     def _get_keystone_credentials(self):
@@ -236,6 +249,7 @@ class KeystoneDriverV2(KeystoneDriver):
         creds['auth_url']     = self._auth_url
         creds['tenant_name']  = self._tenant_name
         creds['insecure']     = self.get_security_mode()
+        creds['region_name']  = self._region
         return creds
 
     def get_auth_token(self):
@@ -265,7 +279,14 @@ class KeystoneDriverV3(KeystoneDriver):
     """
     Driver class for keystoneclient V3 APIs
     """
-    def __init__(self, username, password, auth_url,tenant_name, insecure):
+    def __init__(self, username,
+                 password,
+                 auth_url,
+                 tenant_name,
+                 insecure,
+                 user_domain_name = None,
+                 project_domain_name = None,
+                 region = None):
         """
         Constructor for KeystoneDriverV3 class
         Arguments:
@@ -273,29 +294,48 @@ class KeystoneDriverV3(KeystoneDriver):
         password (string)  : Password
         auth_url (string)  : Authentication URL
         tenant_name(string): Tenant Name
-
+        user_domain_name (string) : User domain name
+        project_domain_name (string): Project domain name
+        region (string)    : Region name
         Returns: None
         """
-        self._username    = username
-        self._password    = password
-        self._auth_url    = auth_url
-        self._tenant_name = tenant_name
-        self._insecure    = insecure
+        self._username             = username
+        self._password             = password
+        self._auth_url             = auth_url
+        self._tenant_name          = tenant_name
+        self._insecure             = insecure
+        self._user_domain_name     = user_domain_name
+        self._project_domain_name  = project_domain_name
+        self._region               = region
         super(KeystoneDriverV3, self).__init__(ksclientv3.Client)
 
     def _get_keystone_credentials(self):
         """
         Returns the dictionary of kwargs required to instantiate python-keystoneclient class
         """
-        creds                 = {}
-        #creds['user_domain'] = self._domain_name
-        creds['username']     = self._username
-        creds['password']     = self._password
-        creds['auth_url']     = self._auth_url
-        creds['project_name'] = self._tenant_name
-        creds['insecure']     = self._insecure
+        creds                        = {}
+        creds['username']            = self._username
+        creds['password']            = self._password
+        creds['auth_url']            = self._auth_url
+        creds['project_name']        = self._tenant_name
+        creds['insecure']            = self._insecure
+        creds['user_domain_name']    = self._user_domain_name
+        creds['project_domain_name'] = self._project_domain_name
+        creds['region_name']         = self._region
         return creds
 
+    def get_user_domain_name(self):
+        """
+        Returns the domain_name of the associated OpenStack user account
+        """
+        return self._user_domain_name;
+
+    def get_project_domain_name(self):
+        """
+        Returns the domain_name of the associated OpenStack project
+        """
+        return self._project_domain_name;
+
     def get_auth_token(self):
         """
         Returns a valid auth_token
@@ -342,6 +382,9 @@ class NovaDriver(object):
         creds['project_id'] = self.ks_drv.get_tenant_name()
         creds['auth_token'] = self.ks_drv.get_auth_token()
         creds['insecure']   = self.ks_drv.get_security_mode()
+        #creds['user_domain_name'] = self.ks_drv.get_user_domain_name()
+        #creds['project_domain_name'] = self.ks_drv.get_project_domain_name()
+
         return creds
 
     def _get_nova_connection(self):
@@ -901,7 +944,7 @@ class NovaDriverV21(NovaDriver):
         Constructor for NovaDriver
         Arguments: KeystoneDriver class object
         """
-        super(NovaDriverV21, self).__init__(ks_drv, 'computev21', '2.1')
+        super(NovaDriverV21, self).__init__(ks_drv, 'compute', '2.1')
 
 class GlanceDriver(object):
     """
@@ -1407,6 +1450,8 @@ class NeutronDriver(object):
                 "network_id"        : kwargs['network_id'],
                 "fixed_ips"         : [ {"subnet_id": kwargs['subnet_id']}],
                 "binding:vnic_type" : kwargs['port_type']}}
+        if 'port_security_enabled' in kwargs:
+            params["port"]["port_security_enabled"] = kwargs['port_security_enabled']
 
         ntconn = self._get_neutron_connection()
         try:
@@ -1641,7 +1686,15 @@ class OpenstackDriver(object):
     """
     Driver for openstack nova, neutron, glance, keystone, swift, cinder services
     """
-    def __init__(self, username, password, auth_url, tenant_name, mgmt_network = None, cert_validate = False):
+    def __init__(self, username,
+                 password,
+                 auth_url,
+                 tenant_name,
+                 mgmt_network = None,
+                 cert_validate = False,
+                 user_domain_name = None,
+                 project_domain_name = None,
+                 region = None):
         """
         OpenstackDriver Driver constructor
         Arguments:
@@ -1652,18 +1705,33 @@ class OpenstackDriver(object):
           mgmt_network(string, optional)      : Management network name. Each VM created with this cloud-account will
                                                 have a default interface into management network.
           cert_validate (boolean, optional)   : In case of SSL/TLS connection if certificate validation is required or not.
-
+          user_domain_name                    : Domain name for user
+          project_domain_name                 : Domain name for project
+          region                              : Region name
         """
         insecure = not cert_validate
         if auth_url.find('/v3') != -1:
-            self.ks_drv        = KeystoneDriverV3(username, password, auth_url, tenant_name, insecure)
+            self.ks_drv        = KeystoneDriverV3(username,
+                                                  password,
+                                                  auth_url,
+                                                  tenant_name,
+                                                  insecure,
+                                                  user_domain_name,
+                                                  project_domain_name,
+                                                  region)
             self.glance_drv    = GlanceDriverV2(self.ks_drv)
             self.nova_drv      = NovaDriverV21(self.ks_drv)
             self.neutron_drv   = NeutronDriverV2(self.ks_drv)
             self.ceilo_drv     = CeilometerDriverV2(self.ks_drv)
             self.cinder_drv     = CinderDriverV2(self.ks_drv)
         elif auth_url.find('/v2') != -1:
-            self.ks_drv        = KeystoneDriverV2(username, password, auth_url, tenant_name, insecure)
+            
+            self.ks_drv        = KeystoneDriverV2(username,
+                                                  password,
+                                                  auth_url,
+                                                  tenant_name,
+                                                  insecure,
+                                                  region)
             self.glance_drv    = GlanceDriverV2(self.ks_drv)
             self.nova_drv      = NovaDriverV2(self.ks_drv)
             self.neutron_drv   = NeutronDriverV2(self.ks_drv)