summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Trautman <ctrautma@redhat.com>2016-05-12 09:26:47 -0400
committerChristian Trautman <ctrautma@redhat.com>2016-05-12 09:26:47 -0400
commit419daef1a844be5fccb0d8f10a299279586d1cbd (patch)
tree437cd1de263fb6398124a7cf327d0ff027f6eaca
parent30d75a0778d825fa13eecea7d352eedfe35bd4ed (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>
-rw-r--r--tools/tasks.py21
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: