From ed380136bcd4657b852618bf0c1e471995e5fe79 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Fri, 19 Dec 2014 20:05:00 -0500 Subject: [PATCH 1/2] removed uneeded and posibly error producing json import now uses utils.jsonify which does proper utf8 encoding --- lib/ansible/cache/jsonfile.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/ansible/cache/jsonfile.py b/lib/ansible/cache/jsonfile.py index ca18974d3c1..a3768209bca 100644 --- a/lib/ansible/cache/jsonfile.py +++ b/lib/ansible/cache/jsonfile.py @@ -17,14 +17,12 @@ import os import time -import json import errno from ansible import constants as C from ansible import utils from ansible.cache.base import BaseCacheModule - class CacheModule(BaseCacheModule): """ A caching module backed by json files. @@ -70,12 +68,11 @@ class CacheModule(BaseCacheModule): cachefile = "%s/%s" % (self._cache_dir, key) try: - #TODO: check if valid keys can have invalid FS chars, base32? f = open(cachefile, 'w') except (OSError,IOError), e: utils.warning("error while trying to read %s : %s" % (cachefile, str(e))) else: - json.dump(value, f, ensure_ascii=False) + f.write(utils.jsonify(value)) finally: f.close() From e0f72d58610aeea198195851292d6f561aad9606 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Fri, 19 Dec 2014 20:08:06 -0500 Subject: [PATCH 2/2] fixed json encoding issue with redis --- lib/ansible/cache/redis.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ansible/cache/redis.py b/lib/ansible/cache/redis.py index c55b74469de..776c6c7f807 100644 --- a/lib/ansible/cache/redis.py +++ b/lib/ansible/cache/redis.py @@ -20,9 +20,9 @@ import collections # FIXME: can we store these as something else before we ship it? import sys import time -import json from ansible import constants as C +from ansible.utils import jsonify from ansible.cache.base import BaseCacheModule try: @@ -65,7 +65,7 @@ class CacheModule(BaseCacheModule): return json.loads(value) def set(self, key, value): - value2 = json.dumps(value) + value2 = jsonify(value) if self._timeout > 0: # a timeout of 0 is handled as meaning 'never expire' self._cache.setex(self._make_key(key), int(self._timeout), value2) else: