summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjctanner <tanner.jc@gmail.com>2013-12-16 13:23:16 -0800
committerJames Tanner <tanner.jc@gmail.com>2013-12-18 20:25:16 -0500
commita5e2fae2b3a22fe9b0108f392e9acf5bf75f85c1 (patch)
treee2d0457bd111d78d110d09f86546879d1d57b14d
parent92c983aa58ab5b69d174841dc71041eb1e38d23a (diff)
downloadansible-a5e2fae2b3a22fe9b0108f392e9acf5bf75f85c1.tar.gz
Merge pull request #5178 from cavassin/devel
Prevents UnicodeEncodeError
-rw-r--r--lib/ansible/callbacks.py10
-rw-r--r--lib/ansible/module_common.py5
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/ansible/callbacks.py b/lib/ansible/callbacks.py
index 08da6630fb..5274a6f8a5 100644
--- a/lib/ansible/callbacks.py
+++ b/lib/ansible/callbacks.py
@@ -128,9 +128,15 @@ def display(msg, color=None, stderr=False, screen_only=False, log_only=False, ru
msg2 = stringc(msg, color)
if not log_only:
if not stderr:
- print msg2
+ try:
+ print msg2
+ except UnicodeEncodeError:
+ print msg2.encode('utf-8')
else:
- print >>sys.stderr, msg2
+ try:
+ print >>sys.stderr, msg2
+ except UnicodeEncodeError:
+ print >>sys.stderr, msg2.encode('utf-8')
if constants.DEFAULT_LOG_PATH != '':
while msg.startswith("\n"):
msg = msg.replace("\n","")
diff --git a/lib/ansible/module_common.py b/lib/ansible/module_common.py
index a3588e2e0b..ba9609b5b7 100644
--- a/lib/ansible/module_common.py
+++ b/lib/ansible/module_common.py
@@ -136,7 +136,10 @@ class ModuleReplacer(object):
complex_args_json = utils.jsonify(complex_args)
# We force conversion of module_args to str because module_common calls shlex.split,
# a standard library function that incorrectly handles Unicode input before Python 2.7.3.
- encoded_args = repr(module_args.encode('utf-8'))
+ try:
+ encoded_args = repr(module_args.encode('utf-8'))
+ except UnicodeDecodeError:
+ encoded_args = repr(module_args)
encoded_lang = repr(C.DEFAULT_MODULE_LANG)
encoded_complex = repr(complex_args_json)