summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxudan <xudan16@huawei.com>2017-08-31 02:20:25 -0400
committerxudan <xudan16@huawei.com>2017-08-31 02:20:25 -0400
commit7535dc21abcdc90c9ff54fe6b9280a659ad4604f (patch)
tree6b1f264f7b163644c4adea6605695019f86f2ac8
parent9cae583b2e411901d67ed63d5a75487ffde8e456 (diff)
Bugfix: the config files in useeconfig will cover user's config
1. Now there are 2 sample files tempest_conf.yaml and hosts.yaml in userconfig, and thet will cover user's tempest_conf.yaml and hosts.yaml in $DOVETAIL_HOME/pre_config. 2. Rename the files in userconfig to be tempest_conf.yaml.sample and hosts.yaml.sample. 3. Add the hosts info in file /etc/hosts in Dovetail Container. JIRA: DOVETAIL-492 Change-Id: I2b5694a8058b864b510925eec595d6f2bd1062ff Signed-off-by: xudan <xudan16@huawei.com>
-rw-r--r--dovetail/container.py33
-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.py6
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))