summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToshio Kuratomi <toshio@fedoraproject.org>2015-01-27 14:18:06 -0800
committerJames Cammarata <jimi@sngx.net>2015-02-17 14:03:22 -0600
commit6b315d57d63e45a91f1207c1d81ec7459ddba714 (patch)
tree4c9d5797b89eb078381e33f58c82b2c76bef3ded
parent71934a118c4642a3ca49d3aac85f68cb625573e5 (diff)
downloadansible-6b315d57d63e45a91f1207c1d81ec7459ddba714.tar.gz
ansible.utils to_unicode/to_bytes isn't robust in the face of
non-strings. Do some value checking in the calling code
-rw-r--r--lib/ansible/callbacks.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/ansible/callbacks.py b/lib/ansible/callbacks.py
index 6469401c92..a84dd75e70 100644
--- a/lib/ansible/callbacks.py
+++ b/lib/ansible/callbacks.py
@@ -27,6 +27,7 @@ import fcntl
import constants
import locale
from ansible.color import stringc
+from ansible.module_utils import basic
import logging
if constants.DEFAULT_LOG_PATH != '':
@@ -456,8 +457,12 @@ class PlaybookRunnerCallbacks(DefaultRunnerCallbacks):
item = None
if type(results) == dict:
item = results.get('item', None)
+ if isinstance(item, unicode):
+ item = utils.to_bytes(item)
+ results = basic.json_dict_unicode_to_bytes(results)
+ else:
+ results = utils.to_bytes(results)
host = utils.to_bytes(host)
- results = utils.to_bytes(results)
if item:
msg = "fatal: [%s] => (item=%s) => %s" % (host, item, results)
else: