diff options
Diffstat (limited to 'functest/utils/functest_utils.py')
-rw-r--r-- | functest/utils/functest_utils.py | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/functest/utils/functest_utils.py b/functest/utils/functest_utils.py index c48acd3b9..eec544489 100644 --- a/functest/utils/functest_utils.py +++ b/functest/utils/functest_utils.py @@ -32,28 +32,26 @@ def execute_command_raise(cmd, info=False, error_msg="", def execute_command(cmd, info=False, error_msg="", verbose=True, output_file=None): if not error_msg: - error_msg = ("The command '%s' failed." % cmd) - msg_exec = ("Executing command: '%s'" % cmd) + error_msg = f"The command '{cmd}' failed." + msg_exec = f"Executing command: '{cmd}'" if verbose: if info: LOGGER.info(msg_exec) else: LOGGER.debug(msg_exec) - popen = subprocess.Popen( - cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - if output_file: - ofd = open(output_file, "w") - for line in iter(popen.stdout.readline, b''): + with subprocess.Popen( + cmd, shell=True, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) as popen: if output_file: - ofd.write(line.decode("utf-8")) - else: - line = line.decode("utf-8").replace('\n', '') - print(line) - sys.stdout.flush() - if output_file: - ofd.close() - popen.stdout.close() - returncode = popen.wait() + with open(output_file, "w", encoding='utf-8') as ofd: + for line in iter(popen.stdout.readline, b''): + if output_file: + ofd.write(line.decode("utf-8")) + else: + line = line.decode("utf-8").replace('\n', '') + print(line) + sys.stdout.flush() + returncode = popen.wait() if returncode != 0: if verbose: LOGGER.error(error_msg) @@ -67,14 +65,14 @@ def get_parameter_from_yaml(parameter, yfile): parameter must be given in string format with dots Example: general.openstack.image_name """ - with open(yfile) as yfd: + with open(yfile, encoding='utf-8') as yfd: file_yaml = yaml.safe_load(yfd) value = file_yaml for element in parameter.split("."): value = value.get(element) if value is None: - raise ValueError("The parameter %s is not defined in" - " %s" % (parameter, yfile)) + raise ValueError(f"The parameter {parameter} is not defined in" + f" {yfile}") return value @@ -114,8 +112,14 @@ def get_openstack_version(cloud): version = get_nova_version(cloud) try: assert version - if version > (2, 87): + if version > (2, 93): osversion = "Master" + elif version > (2, 90): + osversion = "Zed" + elif version > (2, 88): + osversion = "Xena" + elif version > (2, 87): + osversion = "Wallaby" elif version > (2, 79): osversion = "Ussuri" elif version > (2, 72): @@ -195,14 +199,13 @@ def search_services(cloud, name_or_id=None, filters=None): def convert_dict_to_ini(value): "Convert dict to oslo.conf input" assert isinstance(value, dict) - return ",".join("{}:{}".format( - key, val) for (key, val) in six.iteritems(value)) + return ",".join(f"{key}:{val}" for (key, val) in six.iteritems(value)) def convert_list_to_ini(value): "Convert list to oslo.conf input" assert isinstance(value, list) - return ",".join("{}".format(val) for val in value) + return ",".join(val for val in value) def convert_ini_to_dict(value): |