Merge "Wrap exceptions that occur while running external process"

This commit is contained in:
Jenkins
2014-03-05 22:10:34 +00:00
committed by Gerrit Code Review

View File

@@ -15,6 +15,7 @@
import os
import subprocess
import traceback
def run_cmd(*args, **kwargs):
@@ -25,6 +26,7 @@ def run_cmd(*args, **kwargs):
def preexec_fn():
return os.chdir(kwargs['chdir'])
try:
proc = subprocess.Popen(args, stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, env=os.environ,
@@ -36,6 +38,11 @@ def run_cmd(*args, **kwargs):
out, err = proc.communicate()
out = out.decode('utf-8')
except Exception:
raise Exception(
"Exception while processing the command:\n%s.\n%s" %
(' '.join(args), traceback.format_exc())
)
if proc.returncode != 0:
raise Exception(