diff options
author | Josep Puigdemont <josep.puigdemont@enea.com> | 2016-05-04 14:27:23 +0200 |
---|---|---|
committer | Jonas Bjurel <jonas.bjurel@ericsson.com> | 2016-05-31 19:01:59 +0000 |
commit | 3b8db706acb60b680bcf220bd0236d5efcc66d07 (patch) | |
tree | 36de98a8bdd0423ad9f117059e0171b8b8f85b99 /deploy | |
parent | ec0c7698cd363b71694ca33e87f65fc382acda8d (diff) |
common.py: catch stderr in exec_cmd
When running commands with exec_cmd(), the stderr of the command is
sent to /dev/null and ignored, and only stdout is retrieved. Thus, when
a command fails and check is enabled, only the output of stdout is
presented to the user, which normally holds no information about the
error.
In this patch we retrieve stderr, and when an error occurs, an exception
is raised with that message.
Fixes https://jira.opnfv.org/browse/FUEL-142
Change-Id: I3940e1a43963a6abec362481b1d4ce7bd7cb816d
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
Diffstat (limited to 'deploy')
-rw-r--r-- | deploy/common.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/deploy/common.py b/deploy/common.py index 787a21a1d..41b4e274e 100644 --- a/deploy/common.py +++ b/deploy/common.py @@ -38,20 +38,20 @@ LOG.addHandler(out_handler) os.chmod(LOGFILE, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) def exec_cmd(cmd, check=True): - nul_f = open(os.devnull, 'w') process = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=nul_f, + stderr=subprocess.PIPE, shell=True) - nul_f.close() - response = process.communicate()[0].strip() + (response, stderr) = process.communicate() return_code = process.returncode + response = response.strip() if check: if return_code > 0: + stderr = stderr.strip() print "Failed command: " + str(cmd) - print "Command returned response: " + str(response) + print "Command returned response: " + str(stderr) print "Command return code: " + str(return_code) - raise Exception(response) + raise Exception(stderr) else: print "Command: " + str(cmd) print str(response) |