From 4fafd3baa8e8df06f4d8277abb71699157b2e1cb Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Thu, 21 Aug 2014 15:52:36 -0500 Subject: [PATCH] Add error checking around json.dumps when not forcing ascii mode --- lib/ansible/utils/__init__.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/ansible/utils/__init__.py b/lib/ansible/utils/__init__.py index 2f34c86cdd..f5182beca8 100644 --- a/lib/ansible/utils/__init__.py +++ b/lib/ansible/utils/__init__.py @@ -204,10 +204,15 @@ def jsonify(result, format=False): for key, value in result2.items(): if type(value) is str: result2[key] = value.decode('utf-8', 'ignore') + + indent = None if format: - return json.dumps(result2, sort_keys=True, indent=4, ensure_ascii=False) - else: - return json.dumps(result2, sort_keys=True, ensure_ascii=False) + indent = 4 + + try: + return json.dumps(result2, sort_keys=True, indent=indent, ensure_ascii=False) + except UnicodeDecodeError: + return json.dumps(result2, sort_keys=True, indent=indent) def write_tree_file(tree, hostname, buf): ''' write something into treedir/hostname '''