fix 1204: Changed the individual assignments for a chained assignment of the variables
[osm/MON.git] / osm_mon / collector / utils / openstack.py
index c77ac46..b23bd24 100644 (file)
 # For those usages not covered by the Apache License, Version 2.0 please
 # contact: bdiaz@whitestack.com or glavado@whitestack.com
 ##
-import json
 
 from keystoneauth1 import session
 from keystoneauth1.identity import v3
 
-from osm_mon.collector.utils.collector import CollectorUtils
-
 
 class OpenstackUtils:
 
     @staticmethod
-    def get_session(vim_account_id: str):
-        creds = CollectorUtils.get_credentials(vim_account_id)
-        verify_ssl = CollectorUtils.is_verify_ssl(creds)
-        vim_config = json.loads(creds.config)
-        project_domain_name = 'Default'
-        user_domain_name = 'Default'
-        if 'project_domain_name' in vim_config:
-            project_domain_name = vim_config['project_domain_name']
-        if 'user_domain_name' in vim_config:
-            user_domain_name = vim_config['user_domain_name']
-        auth = v3.Password(auth_url=creds.url,
-                           username=creds.user,
-                           password=creds.password,
-                           project_name=creds.tenant_name,
+    def get_session(creds: dict):
+        verify_ssl = True
+        project_domain_id = project_domain_name = user_domain_id = user_domain_name = None
+        if 'config' in creds:
+            vim_config = creds['config']
+            if 'insecure' in vim_config and vim_config['insecure']:
+                verify_ssl = False
+            if 'ca_cert' in vim_config:
+                verify_ssl = vim_config['ca_cert']
+            if 'project_domain_name' in vim_config:
+                project_domain_name = vim_config['project_domain_name']
+            if 'project_domain_id' in vim_config:
+                project_domain_id = vim_config['project_domain_id']
+            if 'user_domain_name' in vim_config:
+                user_domain_name = vim_config['user_domain_name']
+            if 'user_domain_id' in vim_config:
+                user_domain_id = vim_config['user_domain_id']
+        if not project_domain_id and not project_domain_name:
+            project_domain_id = 'default'
+        if not user_domain_id and not user_domain_name:
+            user_domain_id = 'default'
+        auth = v3.Password(auth_url=creds['vim_url'],
+                           username=creds['vim_user'],
+                           password=creds['vim_password'],
+                           project_name=creds['vim_tenant_name'],
                            project_domain_name=project_domain_name,
-                           user_domain_name=user_domain_name)
-        return session.Session(auth=auth, verify=verify_ssl)
+                           project_domain_id=project_domain_id,
+                           user_domain_name=user_domain_name,
+                           user_domain_id=user_domain_id)
+        return session.Session(auth=auth, verify=verify_ssl, timeout=10)