From ce01c3f7e76fd2708678f6c4ca2f2c1b9a721b6d Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Thu, 2 Aug 2012 21:20:43 -0400 Subject: [PATCH] Allow unicode transfer by not base64 encoding. Also: faster --- hacking/test-module | 3 ++- lib/ansible/module_common.py | 5 +++-- lib/ansible/runner/__init__.py | 4 ++-- library/command | 3 ++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/hacking/test-module b/hacking/test-module index 6840dcffc7d..f953c15b9ce 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 ce0a2c55b89..98c42b20ebc 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 = "<>" +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 2881a261fac..356cd30890a 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 48dd0f500a8..933cfe19a9b 100755 --- a/library/command +++ b/library/command @@ -1,4 +1,5 @@ #!/usr/bin/python +# -*- coding: utf-8 -*- # (c) 2012, Michael DeHaan , 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