diff options
author | Christian Trautman <ctrautma@redhat.com> | 2016-05-12 09:26:47 -0400 |
---|---|---|
committer | Christian Trautman <ctrautma@redhat.com> | 2016-05-12 09:26:47 -0400 |
commit | 419daef1a844be5fccb0d8f10a299279586d1cbd (patch) | |
tree | 437cd1de263fb6398124a7cf327d0ff027f6eaca /tools | |
parent | 30d75a0778d825fa13eecea7d352eedfe35bd4ed (diff) |
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 <ctrautma@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/tasks.py | 21 |
1 files changed, 14 insertions, 7 deletions
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: |