From: jose.lausuch Date: Fri, 22 Jul 2016 09:23:41 +0000 (+0200) Subject: Fix execute_command function to show all the output X-Git-Tag: colorado.1.0~222 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=fd1c5c0636eff579af38c81ebb36a875f1a07328;p=functest.git Fix execute_command function to show all the output This function wasn't showing anything for some commands, like 'rally show images' and 'rally show flavors' JIRA: FUNCTEST-348 Change-Id: I75bf5f3504ea8ffea42c2fb237d6863c655259e1 Signed-off-by: jose.lausuch --- diff --git a/utils/functest_utils.py b/utils/functest_utils.py index b51a1c868..b46dc7dda 100644 --- a/utils/functest_utils.py +++ b/utils/functest_utils.py @@ -243,11 +243,8 @@ def execute_command(cmd, logger=None, else: print(msg_exec) p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) - while True: - output = p.stdout.readline() - line = output.replace('\n', '') - if not line: - break + for line in iter(p.stdout.readline, b''): + line = line.replace('\n', '') if logger: if info: logger.info(line) @@ -255,8 +252,9 @@ def execute_command(cmd, logger=None, logger.debug(line) else: print line - p.communicate() - if p.returncode != 0: + p.stdout.close() + returncode = p.wait() + if returncode != 0: if verbose: if logger: logger.error(error_msg) @@ -265,7 +263,7 @@ def execute_command(cmd, logger=None, if exit_on_error: sys.exit(1) - return p.returncode + return returncode def get_deployment_dir(logger=None):