Merge "Enhance variable manipulation in rally"
[functest.git] / functest / utils / env.py
index fa5245f..110164b 100644 (file)
@@ -1,41 +1,46 @@
+#!/usr/bin/env python
+
+# pylint: disable=missing-docstring
+
 import os
 import re
 
-default_envs = {
-    'NODE_NAME': 'unknown_pod',
-    'CI_DEBUG': 'true',
-    'DEPLOY_SCENARIO': 'os-nosdn-nofeature-noha',
-    'DEPLOY_TYPE': 'virt',
-    'INSTALLER_TYPE': None,
-    'INSTALLER_IP': None,
-    'BUILD_TAG': None,
-    'OS_ENDPOINT_TYPE': None,
-    'OS_AUTH_URL': None
-}
+import pkg_resources
+import six
 
 
-class Environment(object):
+class Environment(object):  # pylint: disable=too-few-public-methods
+
+    default_envs = {
+        'NODE_NAME': 'unknown_pod',
+        'DEPLOY_SCENARIO': 'os-nosdn-nofeature-noha',
+        'DEPLOY_TYPE': 'virt',
+        'INSTALLER_TYPE': None,
+        'INSTALLER_IP': None,
+        'BUILD_TAG': None,
+        'OS_ENDPOINT_TYPE': None,
+        'OS_AUTH_URL': None,
+        'CONFIG_FUNCTEST_YAML': pkg_resources.resource_filename(
+            'functest', 'ci/config_functest.yaml'),
+        'OS_INSECURE': '',
+        'OS_REGION_NAME': 'RegionOne'
+    }
 
     def __init__(self):
-        for k, v in os.environ.iteritems():
-            self.__setattr__(k, v)
-        for k, v in default_envs.iteritems():
-            if k not in os.environ:
-                self.__setattr__(k, v)
-        self._set_ci_run()
-        self._set_ci_loop()
-
-    def _set_ci_run(self):
-        if self.BUILD_TAG:
-            self.IS_CI_RUN = True
-        else:
-            self.IS_CI_RUN = False
+        for key, value in six.iteritems(os.environ):
+            setattr(self, key, value)
+        for key, value in six.iteritems(self.default_envs):
+            if key not in os.environ:
+                setattr(self, key, value)
+        if 'CI_LOOP' not in os.environ:
+            self._set_ci_loop()
 
     def _set_ci_loop(self):
-        if self.BUILD_TAG and re.search("daily", self.BUILD_TAG):
-            self.CI_LOOP = "daily"
+        if (getattr(self, "BUILD_TAG") and
+                re.search("daily", getattr(self, "BUILD_TAG"))):
+            setattr(self, "CI_LOOP", "daily")
         else:
-            self.CI_LOOP = "weekly"
+            setattr(self, "CI_LOOP", "weekly")
 
 
 ENV = Environment()