
From: Paulo Vital <pvital@linux.vnet.ibm.com> Call proc.poll() to set and return the returncode attribute of the process that is logging its output into a file. Signed-off-by: Paulo Vital <pvital@linux.vnet.ibm.com> --- src/wok/utils.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/wok/utils.py b/src/wok/utils.py index 2527e77..dfcd978 100644 --- a/src/wok/utils.py +++ b/src/wok/utils.py @@ -224,15 +224,17 @@ def run_command(cmd, timeout=None, silent=False, tee=None, tee_log(line, tee) out = ''.join(output) error = proc.stderr.read() + returncode = proc.poll() else: out, error = proc.communicate() if out: wok_log.debug("out:\n%s", out) - if proc.returncode != 0: + returncode = proc.returncode + if returncode != 0: msg = "rc: %s error: %s returned from cmd: %s" %\ - (proc.returncode, error, ' '.join(cmd)) + (returncode, error, ' '.join(cmd)) if silent: wok_log.debug(msg) @@ -251,7 +253,7 @@ def run_command(cmd, timeout=None, silent=False, tee=None, msg_args = {'cmd': " ".join(cmd), 'seconds': str(timeout)} raise TimeoutExpired("WOKUTILS0002E", msg_args) - return out, error, proc.returncode + return out, error, returncode except TimeoutExpired: raise except OSError as e: -- 2.5.0