Update Xtesting to 0.98
[functest.git] / functest / utils / env.py
index 7e4df2e..2e31272 100644 (file)
@@ -1,41 +1,60 @@
-import os
-import re
-
-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
-}
+#!/usr/bin/env python
 
+# Copyright (c) 2018 Orange and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
 
-class Environment(object):
+# pylint: disable=missing-docstring
 
-    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()
+import os
+
+import prettytable
+from xtesting.utils import env
+
+INPUTS = {
+    'EXTERNAL_NETWORK': None,
+    'CI_LOOP': env.INPUTS['CI_LOOP'],
+    'DEBUG': env.INPUTS['DEBUG'],
+    'DEPLOY_SCENARIO': env.INPUTS['DEPLOY_SCENARIO'],
+    'INSTALLER_TYPE': env.INPUTS['INSTALLER_TYPE'],
+    'SDN_CONTROLLER_IP': None,
+    'SDN_CONTROLLER_USER': 'admin',
+    'SDN_CONTROLLER_PASSWORD': 'admin',
+    'SDN_CONTROLLER_WEBPORT': '8080',
+    'SDN_CONTROLLER_RESTCONFPORT': '8181',
+    'BUILD_TAG': env.INPUTS['BUILD_TAG'],
+    'NODE_NAME': env.INPUTS['NODE_NAME'],
+    'POD_ARCH': None,
+    'TEST_DB_URL': env.INPUTS['TEST_DB_URL'],
+    'VOLUME_DEVICE_NAME': 'vdb',
+    'IMAGE_PROPERTIES': '',
+    'FLAVOR_EXTRA_SPECS': '',
+    'NAMESERVER': '8.8.8.8',
+    'NEW_USER_ROLE': 'Member',
+    'USE_DYNAMIC_CREDENTIALS': 'True',
+    'BLOCK_MIGRATION': 'False',
+    'CLEAN_ORPHAN_SECURITY_GROUPS': 'True',
+    'SKIP_DOWN_HYPERVISORS': 'False',
+    'PUBLIC_ENDPOINT_ONLY': 'False',
+    'DASHBOARD_URL': '',
+    'VMTP_HYPERVISORS': '',
+    'NO_TENANT_NETWORK': 'False'
+}
 
-    def _set_ci_run(self):
-        if self.BUILD_TAG:
-            self.IS_CI_RUN = True
-        else:
-            self.IS_CI_RUN = False
 
-    def _set_ci_loop(self):
-        if self.BUILD_TAG and re.search("daily", self.BUILD_TAG):
-            self.CI_LOOP = "daily"
-        else:
-            self.CI_LOOP = "weekly"
+def get(env_var):
+    if env_var not in INPUTS.keys():
+        return os.environ.get(env_var, None)
+    return os.environ.get(env_var, INPUTS[env_var])
 
 
-ENV = Environment()
+def string():
+    msg = prettytable.PrettyTable(
+        header_style='upper', padding_width=5,
+        field_names=['env var', 'value'])
+    for env_var in INPUTS:
+        msg.add_row([env_var, get(env_var) if get(env_var) else ''])
+    return msg