summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael DeHaan <michael.dehaan@gmail.com>2012-08-02 21:20:43 -0400
committerMichael DeHaan <michael.dehaan@gmail.com>2012-08-02 21:20:43 -0400
commitce01c3f7e76fd2708678f6c4ca2f2c1b9a721b6d (patch)
treeb696404b839e1094ce8523a09f1455b96bac19ac
parent227dfc17f38e2856094559e9734e1a3f10777829 (diff)
downloadansible-ce01c3f7e76fd2708678f6c4ca2f2c1b9a721b6d.tar.gz
Allow unicode transfer by not base64 encoding. Also: faster
-rwxr-xr-xhacking/test-module3
-rw-r--r--lib/ansible/module_common.py5
-rw-r--r--lib/ansible/runner/__init__.py4
-rwxr-xr-xlibrary/command3
4 files changed, 9 insertions, 6 deletions
diff --git a/hacking/test-module b/hacking/test-module
index 6840dcffc7..f953c15b9c 100755
--- a/hacking/test-module
+++ b/hacking/test-module
@@ -79,8 +79,9 @@ def boilerplate_module(modfile, args):
module_fh.close()
if included_boilerplate:
+
module_data = module_data.replace(module_common.REPLACER, module_common.MODULE_COMMON)
- encoded_args = base64.b64encode(args)
+ encoded_args = "\"\"\"%s\"\"\"" % args.replace("\"","\\\"")
module_data = module_data.replace(module_common.REPLACER_ARGS, encoded_args)
modfile2_path = os.path.expanduser("~/.ansible_module_generated")
diff --git a/lib/ansible/module_common.py b/lib/ansible/module_common.py
index ce0a2c55b8..98c42b20eb 100644
--- a/lib/ansible/module_common.py
+++ b/lib/ansible/module_common.py
@@ -22,7 +22,8 @@ MODULE_COMMON = """
# == BEGIN DYNAMICALLY INSERTED CODE ==
-MODULE_ARGS = "<<INCLUDE_ANSIBLE_MODULE_ARGS>>"
+MODULE_ARGS = <<INCLUDE_ANSIBLE_MODULE_ARGS>>
+
BOOLEANS_TRUE = ['yes', 'on', '1', 'true', 1]
BOOLEANS_FALSE = ['no', 'off', '0', 'false', 0]
BOOLEANS = BOOLEANS_TRUE + BOOLEANS_FALSE
@@ -144,7 +145,7 @@ class AnsibleModule(object):
def _load_params(self):
''' read the input and return a dictionary and the arguments string '''
- args = base64.b64decode(MODULE_ARGS)
+ args = MODULE_ARGS
items = shlex.split(args)
params = {}
for x in items:
diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py
index 2881a261fa..356cd30890 100644
--- a/lib/ansible/runner/__init__.py
+++ b/lib/ansible/runner/__init__.py
@@ -188,7 +188,7 @@ class Runner(object):
afd, afile = tempfile.mkstemp()
afo = os.fdopen(afd, 'w')
- afo.write(data.encode("utf8"))
+ afo.write(data.encode('utf8'))
afo.flush()
afo.close()
@@ -700,7 +700,7 @@ class Runner(object):
if module_common.REPLACER in module_data:
is_new_style=True
module_data = module_data.replace(module_common.REPLACER, module_common.MODULE_COMMON)
- encoded_args = base64.b64encode(utils.template(self.module_args, inject).encode('utf-8'))
+ encoded_args = "\"\"\"%s\"\"\"" % utils.template(self.module_args, inject).replace("\"","\\\"")
module_data = module_data.replace(module_common.REPLACER_ARGS, encoded_args)
# use the correct python interpreter for the host
diff --git a/library/command b/library/command
index 48dd0f500a..933cfe19a9 100755
--- a/library/command
+++ b/library/command
@@ -1,4 +1,5 @@
#!/usr/bin/python
+# -*- coding: utf-8 -*-
# (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>, and others
#
@@ -84,7 +85,7 @@ class CommandModule(AnsibleModule):
def _load_params(self):
''' read the input and return a dictionary and the arguments string '''
- args = base64.b64decode(MODULE_ARGS)
+ args = MODULE_ARGS
items = shlex.split(args)
params = {}
params['chdir'] = None