diff options
author | jctanner <tanner.jc@gmail.com> | 2013-12-16 13:23:16 -0800 |
---|---|---|
committer | James Tanner <tanner.jc@gmail.com> | 2013-12-18 20:25:16 -0500 |
commit | a5e2fae2b3a22fe9b0108f392e9acf5bf75f85c1 (patch) | |
tree | e2d0457bd111d78d110d09f86546879d1d57b14d | |
parent | 92c983aa58ab5b69d174841dc71041eb1e38d23a (diff) | |
download | ansible-a5e2fae2b3a22fe9b0108f392e9acf5bf75f85c1.tar.gz |
Merge pull request #5178 from cavassin/devel
Prevents UnicodeEncodeError
-rw-r--r-- | lib/ansible/callbacks.py | 10 | ||||
-rw-r--r-- | lib/ansible/module_common.py | 5 |
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) |