diff --git a/ec2/spark_ec2.py b/ec2/spark_ec2.py index 8b056f5ea734c..8ef9a788dff78 100755 --- a/ec2/spark_ec2.py +++ b/ec2/spark_ec2.py @@ -669,8 +669,22 @@ def ssh(host, opts, command): tries = tries + 1 +def _check_output(*popenargs, **kwargs): + if 'stdout' in kwargs: + raise ValueError('stdout argument not allowed, it will be overridden.') + process = subprocess.Popen(stdout=PIPE, *popenargs, **kwargs) + output, unused_err = process.communicate() + retcode = process.poll() + if retcode: + cmd = kwargs.get("args") + if cmd is None: + cmd = popenargs[0] + raise subprocess.CalledProcessError(retcode, cmd, output=output) + return output + + def ssh_read(host, opts, command): - return subprocess.check_output( + return _check_output( ssh_command(opts) + ['%s@%s' % (opts.user, host), stringify_command(command)])