Merge "Enhance variable manipulation in rally"
[functest.git] / functest / utils / env.py
index 3724ec9..110164b 100644 (file)
@@ -1,48 +1,46 @@
 #!/usr/bin/env python
 
+# pylint: disable=missing-docstring
+
 import os
 import re
 
+import pkg_resources
 import six
 
 
-default_envs = {
-    'NODE_NAME': 'unknown_pod',
-    'CI_DEBUG': 'false',
-    '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': os.path.normpath(os.path.join(os.path.dirname(
-        os.path.abspath(__file__)), '../ci/config_functest.yaml'))
-}
-
+class Environment(object):  # pylint: disable=too-few-public-methods
 
-class Environment(object):
+    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 six.iteritems(os.environ):
-            self.__setattr__(k, v)
-        for k, v in six.iteritems(default_envs):
-            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()