Update to Alpine 3.14
[functest.git] / functest / utils / config.py
index 050f12a..3226b2d 100644 (file)
@@ -2,22 +2,23 @@
 
 # pylint: disable=missing-docstring
 
-import os
 import pkg_resources
 import yaml
 
 import six
 
+from functest.utils import env
 
-class Config(object):
+
+class Config():
     def __init__(self):
         try:
-            # pylint: disable=bad-continuation
             with open(pkg_resources.resource_filename(
                     'functest', 'ci/config_functest.yaml')) as yfile:
                 self.functest_yaml = yaml.safe_load(yfile)
         except Exception as error:
-            raise Exception('Parse config failed: {}'.format(str(error)))
+            raise Exception(
+                'Parse config failed: {}'.format(str(error))) from error
 
     @staticmethod
     def _merge_dicts(dict1, dict2):
@@ -37,7 +38,7 @@ class Config(object):
             patch_file = yaml.safe_load(yfile)
 
         for key in patch_file:
-            if key in os.environ.get('DEPLOY_SCENARIO', ""):
+            if key in env.get('DEPLOY_SCENARIO'):
                 self.functest_yaml = dict(Config._merge_dicts(
                     self.functest_yaml, patch_file[key]))
 
@@ -45,7 +46,7 @@ class Config(object):
         for param_n, param_v in six.iteritems(left_parametes):
             attr_further = self._get_attr_further(attr_now, param_n)
             if attr_further:
-                self.__setattr__(attr_further, param_v)
+                setattr(self, attr_further, param_v)
             if isinstance(param_v, dict):
                 self._parse(attr_further, param_v)
 
@@ -58,13 +59,14 @@ class Config(object):
         try:
             self._parse(None, self.functest_yaml)
         except Exception as error:
-            raise Exception('Parse config failed: {}'.format(str(error)))
+            raise Exception(
+                'Parse config failed: {}'.format(str(error))) from error
 
 
 CONF = Config()
 CONF.patch_file(pkg_resources.resource_filename(
     'functest', 'ci/config_patch.yaml'))
-if os.getenv("POD_ARCH", None) and os.getenv("POD_ARCH", None) in ['aarch64']:
+if env.get("POD_ARCH") in ['aarch64']:
     CONF.patch_file(pkg_resources.resource_filename(
         'functest', 'ci/config_aarch64_patch.yaml'))
 CONF.fill()