Execute commands through accelerate with shell when needed

This fixes an issue related to the new run_command changes, whereby
Popen fails to run a command when an executable is specified + shell=False
and there are multiple positional arguments (see Popen docs for details)
This commit is contained in:
James Cammarata 2014-03-18 12:22:58 -05:00
parent d60fb500dc
commit f46760ef37

View file

@ -329,11 +329,15 @@ class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
return dict(failed=True, msg='internal error: cmd is required')
if 'tmp_path' not in data:
return dict(failed=True, msg='internal error: tmp_path is required')
if 'executable' not in data:
return dict(failed=True, msg='internal error: executable is required')
vvvv("executing: %s" % data['cmd'])
rc, stdout, stderr = self.server.module.run_command(data['cmd'], executable=data['executable'], close_fds=True)
use_unsafe_shell = False
executable = data.get('executable')
if executable:
use_unsafe_shell = True
rc, stdout, stderr = self.server.module.run_command(data['cmd'], executable=executable, use_unsafe_shell=use_unsafe_shell)
if stdout is None:
stdout = ''
if stderr is None: