From: Christian Trautman Date: Thu, 12 May 2016 13:26:47 +0000 (-0400) Subject: run_task_fix: Fix run_task to provide all output from command X-Git-Tag: colorado.1.0~67^2 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=419daef1a844be5fccb0d8f10a299279586d1cbd;p=vswitchperf.git run_task_fix: Fix run_task to provide all output from command Fix run_task to correctly provide all output from command sent. Commands that produced longer output would not return all text. JIRA: VSPERF-296 Change-Id: I7e501690ffdb7c01f90d524ffbabe65500f62304 Signed-off-by: Christian Trautman --- diff --git a/tools/tasks.py b/tools/tasks.py index dda5217d..9816a336 100644 --- a/tools/tasks.py +++ b/tools/tasks.py @@ -86,17 +86,24 @@ def run_task(cmd, logger, msg=None, check_error=False): for file_d in ret[0]: if file_d == proc.stdout.fileno(): - line = proc.stdout.readline() - if settings.getValue('VERBOSITY') == 'debug': - sys.stdout.write(line.decode(my_encoding)) - stdout.append(line) + while True: + line = proc.stdout.readline() + if not line: + break + if settings.getValue('VERBOSITY') == 'debug': + sys.stdout.write(line.decode(my_encoding)) + stdout.append(line) if file_d == proc.stderr.fileno(): - line = proc.stderr.readline() - sys.stderr.write(line.decode(my_encoding)) - stderr.append(line) + while True: + line = proc.stderr.readline() + if not line: + break + sys.stderr.write(line.decode(my_encoding)) + stderr.append(line) if proc.poll() is not None: break + except OSError as ex: handle_error(ex) else: