From fd1c5c0636eff579af38c81ebb36a875f1a07328 Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Fri, 22 Jul 2016 11:23:41 +0200 Subject: [PATCH] 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 --- utils/functest_utils.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/utils/functest_utils.py b/utils/functest_utils.py index b51a1c86..b46dc7dd 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): -- 2.16.6