Merge: openstack client for keystone v3. Maintain sessions upon class reload with...
[osm/RO.git] / osm_ro / vimconn_aws.py
index 22d0412..f0eebb6 100644 (file)
@@ -44,7 +44,7 @@ except:
 
 class vimconnector(vimconn.vimconnector):
     def __init__(self, uuid, name, tenant_id, tenant_name, url, url_admin=None, user=None, passwd=None, log_level=None,
-                 config={}):
+                 config={}, persistent_info={}):
         """ Params: uuid - id asigned to this VIM
                 name - name assigned to this VIM, can be used for logging
                 tenant_id - ID to be used for tenant
@@ -57,10 +57,15 @@ class vimconnector(vimconn.vimconnector):
                     region_name - name of region to deploy the instances
                     vpc_cidr_block - default CIDR block for VPC
                     security_groups - default security group to specify this instance
+                persistent_info - dict where the class can store information that will be available among class
+                    destroy/creation cycles. This info is unique per VIM/credential. At first call it will contain an
+                    empty dict. Useful to store login/tokens information for speed up communication
         """
 
         vimconn.vimconnector.__init__(self, uuid, name, tenant_id, tenant_name, url, url_admin, user, passwd, log_level,
-                                      config)
+                                      config, persistent_info)
+
+        self.persistent_info = persistent_info
         self.a_creds = {}
         if user:
             self.a_creds['aws_access_key_id'] = user
@@ -112,7 +117,7 @@ class vimconnector(vimconn.vimconnector):
                 except IOError as e:
                     raise vimconn.vimconnException("Error reading file '{}': {}".format(flavor_data[1:], e))
             elif isinstance(flavor_data, dict):
-                self.flavor_data = flavor_data
+                self.flavor_info = flavor_data
 
         self.logger = logging.getLogger('openmano.vim.aws')
         if log_level:
@@ -466,17 +471,17 @@ class vimconnector(vimconn.vimconnector):
         try:
             flavor = None
             for key, values in self.flavor_info.iteritems():
-                if (values["memory"], values["cores"], values["disk"]) == (
-                flavor_dict["ram"], flavor_dict["cpus"], flavor_dict["disk"]):
+                if (values["ram"], values["cpus"], values["disk"]) == (
+                flavor_dict["ram"], flavor_dict["vcpus"], flavor_dict["disk"]):
                     flavor = (key, values)
                     break
-                elif (values["memory"], values["cores"], values["disk"]) >= (
-                flavor_dict["ram"], flavor_dict["cpus"], flavor_dict["disk"]):
+                elif (values["ram"], values["cpus"], values["disk"]) >= (
+                flavor_dict["ram"], flavor_dict["vcpus"], flavor_dict["disk"]):
                     if not flavor:
                         flavor = (key, values)
                     else:
-                        if (flavor[1]["memory"], flavor[1]["cores"], flavor[1]["disk"]) >= (
-                        values["memory"], values["cores"], values["disk"]):
+                        if (flavor[1]["ram"], flavor[1]["cpus"], flavor[1]["disk"]) >= (
+                        values["ram"], values["cpus"], values["disk"]):
                             flavor = (key, values)
             if flavor:
                 return flavor[0]