diff options
Diffstat (limited to 'sfc/lib/config.py')
-rw-r--r-- | sfc/lib/config.py | 67 |
1 files changed, 48 insertions, 19 deletions
diff --git a/sfc/lib/config.py b/sfc/lib/config.py index bc955d8b..e6149081 100644 --- a/sfc/lib/config.py +++ b/sfc/lib/config.py @@ -8,16 +8,18 @@ # http://www.apache.org/licenses/LICENSE-2.0 # + +import logging import os -import yaml import sfc +import yaml import functest - -import sfc.lib.test_utils as test_utils -from functest.utils.constants import CONST -import logging import functest.utils.functest_utils as ft_utils +import sfc.lib.test_utils as test_utils + +from functest.utils import config +from functest.utils import env logger = logging.getLogger(__name__) @@ -28,8 +30,7 @@ class CommonConfig(object): """ def __init__(self): - self.line_length = 30 - self.test_db = ft_utils.get_functest_config("results.test_db_url") + self.line_length = 35 self.functest_repo_path = os.path.dirname(functest.__file__) self.functest_logging_api = os.path.join(self.functest_repo_path, "ci", "logging.ini") @@ -41,16 +42,31 @@ class CommonConfig(object): self.sfc_test_dir, "vnfd-default-params-file") self.vnffgd_dir = os.path.join(self.sfc_test_dir, "vnffgd-templates") self.functest_results_dir = os.path.join( - CONST.dir_results, "odl-sfc") - self.config_file = os.path.join(self.sfc_test_dir, "config.yaml") + getattr(config.CONF, 'dir_results'), "odl-sfc") + + # We need to know the openstack version in order to use one config or + # another. For Pike we will use config-pike.yaml. Queens and Rocky + # will use config.yaml + if 'OPENSTACK_OSA_VERSION' in os.environ: + if os.environ['OPENSTACK_OSA_VERSION'] == 'stable/pike': + self.config_file = os.path.join(self.sfc_test_dir, + "config-pike.yaml") + else: + self.config_file = os.path.join(self.sfc_test_dir, + "config.yaml") + else: + self.config_file = os.path.join(self.sfc_test_dir, + "config-pike.yaml") + + logger.info("The config file used is {}".format(self.config_file)) self.vim_file = os.path.join(self.sfc_test_dir, "register-vim.json") - self.installer_type = CONST.__getattribute__('INSTALLER_TYPE') + self.installer_type = env.get('INSTALLER_TYPE') self.installer_fields = test_utils.fill_installer_dict( - self.installer_type) + self.installer_type) - self.installer_ip = CONST.__getattribute__('INSTALLER_IP') + self.installer_ip = env.get('INSTALLER_IP') self.installer_user = ft_utils.get_parameter_from_yaml( self.installer_fields['user'], self.config_file) @@ -58,19 +74,19 @@ class CommonConfig(object): try: self.installer_password = ft_utils.get_parameter_from_yaml( self.installer_fields['password'], self.config_file) - except: + except Exception: self.installer_password = None try: self.installer_key_file = ft_utils.get_parameter_from_yaml( self.installer_fields['pkey_file'], self.config_file) - except: + except Exception: self.installer_key_file = None try: self.installer_cluster = ft_utils.get_parameter_from_yaml( self.installer_fields['cluster'], self.config_file) - except: + except Exception: self.installer_cluster = None self.flavor = ft_utils.get_parameter_from_yaml( @@ -87,8 +103,20 @@ class CommonConfig(object): "defaults.image_format", self.config_file) self.image_url = ft_utils.get_parameter_from_yaml( "defaults.image_url", self.config_file) - self.dir_functest_data = ft_utils.get_functest_config( - "general.dir.functest_data") + try: + self.vnf_image_name = ft_utils.get_parameter_from_yaml( + "defaults.vnf_image_name", self.config_file) + self.vnf_image_url = ft_utils.get_parameter_from_yaml( + "defaults.vnf_image_url", self.config_file) + self.vnf_image_format = ft_utils.get_parameter_from_yaml( + "defaults.vnf_image_format", self.config_file) + except ValueError: + # If the parameter does not exist we use the default + self.vnf_image_name = self.image_name + self.vnf_image_url = self.image_url + self.vnf_image_format = self.image_format + + self.dir_functest_data = getattr(config.CONF, 'dir_functest_data') class TestcaseConfig(object): @@ -104,7 +132,8 @@ class TestcaseConfig(object): testcases_yaml = yaml.safe_load(f) test_config = testcases_yaml['testcases'].get(testcase, None) if test_config is None: - logger.error('Test {0} configuration is not present in {1}' - .format(testcase, common_config.config_file)) + logger.error( + 'Test %s configuration is not present in %s', + testcase, common_config.config_file) # Update class fields with configuration variables dynamically self.__dict__.update(**test_config) |