From e8b9ccdeb1d12e9958baf307c79a9a6cc180a6d5 Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Thu, 5 May 2016 14:36:03 +0200 Subject: Don't exit on error when destroying rally deployment Also, some improvements in execute_command function Change-Id: I8271d55202b8859701275d5f7322a7bd4894e475 Signed-off-by: jose.lausuch --- utils/functest_utils.py | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) (limited to 'utils') diff --git a/utils/functest_utils.py b/utils/functest_utils.py index a69174b9..41925fc4 100644 --- a/utils/functest_utils.py +++ b/utils/functest_utils.py @@ -196,24 +196,39 @@ def get_ci_envvars(): return ci_env_var -def execute_command(cmd, logger=None, exit_on_error=True, info=False): - if logger: - logger.debug('Executing command : {}'.format(cmd)) - p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) - while p.poll() is None: - line = p.stdout.readline().rstrip() +def execute_command(cmd, logger=None, + exit_on_error=True, + info=False, + error_msg="", + verbose=True): + if not error_msg: + error_msg = ("The command '%s' failed." % cmd) + msg_exec = ("Executing command: '%s'" % cmd) + if verbose: if logger: if info: - logger.info(line) + logger.info(msg_exec) else: - logger.debug(line) + logger.debug(msg_exec) else: - print line + print(msg_exec) + p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) + while p.poll() is None: + line = p.stdout.readline().rstrip() + if verbose: + if logger: + if info: + logger.info(line) + else: + logger.debug(line) + else: + print line if p.returncode != 0: - if logger: - logger.error("Error when executing command %s" % cmd) - else: - print("Error when executing command %s" % cmd) + if verbose: + if logger: + logger.error(error_msg) + else: + print(error_msg) if exit_on_error: sys.exit(1) -- cgit 1.2.3-korg