From c729d5c0b053eb7762426b78682fc0eeca033e81 Mon Sep 17 00:00:00 2001 From: xudan Date: Tue, 27 Feb 2018 01:54:02 -0500 Subject: Bugfix: Dovetail tool will crash when hosts.yaml file with incorrect format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the hosts.yaml file is like, — hosts_info: 192.168.141.101: it will raise an exception, File "/usr/local/lib/python2.7/dist-packages/dovetail/utils/dovetail_utils.py", line 227, in add_hosts_info names=hostnames) File "/usr/local/lib/python2.7/dist-packages/python_hosts/hosts.py", line 54, in _init_ raise Exception('Address and Name(s) must be specified.') Exception: Address and Name(s) must be specified. If the hosts.yaml file is empty, it will crash with, File "/usr/local/lib/python2.7/dist-packages/dovetail/container.py", line 174, in create if hosts_yaml['hosts_info']: TypeError: 'NoneType' object has no attribute '_getitem_' JIRA: DOVETAIL-621 Change-Id: I547928e514b3294c048379459c07df89879fbb03 Signed-off-by: xudan --- dovetail/container.py | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'dovetail/container.py') diff --git a/dovetail/container.py b/dovetail/container.py index 8b4f0fcd..63ce2db8 100644 --- a/dovetail/container.py +++ b/dovetail/container.py @@ -8,7 +8,6 @@ # import os -import yaml import utils.dovetail_logger as dt_logger import utils.dovetail_utils as dt_utils @@ -169,20 +168,7 @@ 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') - if os.path.isfile(hosts_config_file): - with open(hosts_config_file) as f: - 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)) + hosts_config = dt_utils.get_hosts_info(cls.logger) config = "" if type.lower() == "functest": -- cgit 1.2.3-korg