From 2b090511832f1898f7d15cc33a6b9b20a8d88e07 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Wed, 15 Nov 2017 17:46:44 +0800 Subject: bugfix: hosts info is wrongly processed changes: 1. add usage example in hosts.yaml.sample 2. fix /etc/hosts from wrong format {'hostname': 'ip'} to the right 'ip hostnames' 3. fix --add-hosts from wrong usage --add-host {'hostname': 'ip'} to the right --add-host='hostnames':ip 4. support per ip mapping mutiple hostnames, which is also in line with /etc/hosts schema JIRA: DOVETAIL-556 Change-Id: I92e8cb0fd3476b61f5c73a69e34c4a66aef51d6e Signed-off-by: SerenaFeng --- dovetail/container.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'dovetail/container.py') diff --git a/dovetail/container.py b/dovetail/container.py index e8840de3..e1191094 100644 --- a/dovetail/container.py +++ b/dovetail/container.py @@ -167,13 +167,15 @@ class Container(object): 'hosts.yaml') if os.path.isfile(hosts_config_file): 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.debug('Get hosts info {}.'.format(host)) + hosts_yaml = yaml.safe_load(f) + if hosts_yaml['hosts_info']: + for ip, hostnames in hosts_yaml['hosts_info'].iteritems(): + dt_utils.add_hosts_info(ip, hostnames) + names_str = ' '.join(hostname for hostname in hostnames) + hosts_config += ' --add-host=\'{}\':{} '.format(names_str, + ip) + cls.logger.debug('Get hosts info {}:{}.'.format(ip, + names_str)) config = "" if type.lower() == "functest": -- cgit 1.2.3-korg