From a9948f97c6590866e292980106d14bf7eb84c2bb Mon Sep 17 00:00:00 2001 From: Seth Vidal Date: Wed, 14 Mar 2012 00:34:00 -0400 Subject: [PATCH] convert runner to use an args file rather than just arguments passed on the command line --- lib/ansible/runner.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/ansible/runner.py b/lib/ansible/runner.py index 58ff290df74..0701989967c 100755 --- a/lib/ansible/runner.py +++ b/lib/ansible/runner.py @@ -34,6 +34,7 @@ import random import jinja2 import time import traceback +import tempfile # FIXME: stop importing *, use as utils/errors from ansible.utils import * @@ -267,8 +268,17 @@ class Runner(object): template = jinja2.Template(args) args = template.render(inject_vars) - - cmd = "%s %s" % (remote_module_path, args) + # make a tempfile for the args and stuff the args into the file + argsfd,argsfile = tempfile.mkstemp() + argsfo = os.fdopen(argsfd, 'w') + argsfo.write(args) + argsfo.flush() + argsfo.close() + args_rem = tmp + 'argsfile' + self.remote_log(conn, "args: %s" % args) + self._transfer_file(conn,argsfile, args_rem) + os.unlink(argsfile) + cmd = "%s %s" % (remote_module_path, args_rem) result = self._exec_command(conn, cmd) return result