diff options
author | jose.lausuch <jose.lausuch@ericsson.com> | 2016-07-22 11:23:41 +0200 |
---|---|---|
committer | jose.lausuch <jose.lausuch@ericsson.com> | 2016-07-22 11:29:02 +0200 |
commit | fd1c5c0636eff579af38c81ebb36a875f1a07328 (patch) | |
tree | ccdc3d63523b57a5913829c6f4654dd6a3608882 | |
parent | 85cb44adbb5aa7b230f5c918ba593a1137304e3a (diff) |
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 <jose.lausuch@ericsson.com>
-rw-r--r-- | utils/functest_utils.py | 14 |
1 files 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): |