diff options
-rw-r--r-- | dovetail/container.py | 33 | ||||
-rw-r--r-- | dovetail/userconfig/hosts.yaml.sample (renamed from dovetail/userconfig/hosts.yaml) | 0 | ||||
-rw-r--r-- | dovetail/userconfig/tempest_conf.yaml.sample (renamed from dovetail/userconfig/tempest_conf.yaml) | 0 | ||||
-rw-r--r-- | dovetail/utils/dovetail_utils.py | 6 |
4 files changed, 23 insertions, 16 deletions
diff --git a/dovetail/container.py b/dovetail/container.py index f3d08373..cf8e14e5 100644 --- a/dovetail/container.py +++ b/dovetail/container.py @@ -153,6 +153,23 @@ class Container(object): envs = envs + ' -e BUILD_TAG=%s-%s' % (dovetail_config['build_tag'], testcase_name) + hosts_config = "" + hosts_config_file = os.path.join(dovetail_config['config_dir'], + 'hosts.yaml') + try: + with open(hosts_config_file) as f: + hosts_info = yaml.safe_load(f) + if hosts_info['hosts_info']: + for host in hosts_info['hosts_info']: + dt_utils.add_hosts_info(host) + hosts_config += " --add-host " + hosts_config += str(host) + cls.logger.info('Get hosts info {}.'.format(hosts_config)) + except Exception: + cls.logger.warn('Failed to get hosts info in {}, ' + 'maybe some issues with domain name resolution.' + .format(hosts_config_file)) + config = "" if type.lower() == "functest": config = cls.set_functest_config(testcase_name) @@ -168,22 +185,6 @@ class Container(object): ' -v %s:%s ' % (os.getenv("DOVETAIL_HOME"), dovetail_config[type]['config']['dir']) - hosts_config = "" - hosts_config_path = os.path.abspath( - os.path.join(os.path.dirname(__file__), 'userconfig')) - try: - with open(os.path.join(hosts_config_path, 'hosts.yaml')) as f: - hosts_info = yaml.safe_load(f) - if hosts_info['hosts_info']: - for host in hosts_info['hosts_info']: - hosts_config += " --add-host " - hosts_config += str(host) - cls.logger.info('Get hosts info {}.'.format(hosts_config)) - except Exception: - cls.logger.warn('Failed to get hosts info in {}/hosts.yaml, ' - 'maybe some issues with domain name resolution.' - .format(hosts_config_path)) - cacert_volume = "" https_enabled = dt_utils.check_https_enabled(cls.logger) cacert = os.getenv('OS_CACERT',) diff --git a/dovetail/userconfig/hosts.yaml b/dovetail/userconfig/hosts.yaml.sample index e4687dfb..e4687dfb 100644 --- a/dovetail/userconfig/hosts.yaml +++ b/dovetail/userconfig/hosts.yaml.sample diff --git a/dovetail/userconfig/tempest_conf.yaml b/dovetail/userconfig/tempest_conf.yaml.sample index 944e3a9f..944e3a9f 100644 --- a/dovetail/userconfig/tempest_conf.yaml +++ b/dovetail/userconfig/tempest_conf.yaml.sample diff --git a/dovetail/utils/dovetail_utils.py b/dovetail/utils/dovetail_utils.py index 2c7ac317..23285e3c 100644 --- a/dovetail/utils/dovetail_utils.py +++ b/dovetail/utils/dovetail_utils.py @@ -208,3 +208,9 @@ def check_docker_version(logger=None): if client_ret != 0 or (LooseVersion(client_ver) < LooseVersion('1.12.3')): logger.error("Don't support this Docker client version. " "Docker client should be updated to at least 1.12.3.") + + +def add_hosts_info(hosts_info): + hosts_file = '/etc/hosts' + with open(hosts_file, 'a') as f: + f.write("{}\n".format(hosts_info)) |