Fix to_nice_json on python2.6

pull/9985/head
Toshio Kuratomi 10 years ago
parent f995b34638
commit edc27c5a5b

@ -65,7 +65,7 @@ class ActionModule(object):
stat = module_return.result.get('stat', None) stat = module_return.result.get('stat', None)
if stat and stat.get('exists', False): if stat and stat.get('exists', False):
return ReturnData( return ReturnData(
conn=conn, conn=conn,
comm_ok=True, comm_ok=True,
result=dict( result=dict(
skipped=True, skipped=True,

@ -15,21 +15,24 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>. # along with Ansible. If not, see <http://www.gnu.org/licenses/>.
import sys
import base64 import base64
import json import json
import os.path import os.path
import yaml
import types import types
import pipes import pipes
import glob import glob
import re import re
import collections import collections
import operator as py_operator import operator as py_operator
from ansible import errors
from ansible.utils import md5s, checksum_s
from distutils.version import LooseVersion, StrictVersion
from random import SystemRandom, shuffle from random import SystemRandom, shuffle
import yaml
from jinja2.filters import environmentfilter from jinja2.filters import environmentfilter
from distutils.version import LooseVersion, StrictVersion
from ansible import errors
from ansible.utils import md5s, checksum_s
def to_nice_yaml(*a, **kw): def to_nice_yaml(*a, **kw):
@ -42,6 +45,22 @@ def to_json(a, *args, **kw):
def to_nice_json(a, *args, **kw): def to_nice_json(a, *args, **kw):
'''Make verbose, human readable JSON''' '''Make verbose, human readable JSON'''
# python-2.6's json encoder is buggy (can't encode hostvars)
if sys.version_info < (2, 7):
try:
import simplejson
except ImportError:
pass
else:
try:
major = int(simplejson.__version__.split('.')[0])
except:
pass
else:
if major >= 2:
return simplejson.dumps(a, indent=4, sort_keys=True, *args, **kw)
# Fallback to the to_json filter
return to_json(a, *args, **kw)
return json.dumps(a, indent=4, sort_keys=True, *args, **kw) return json.dumps(a, indent=4, sort_keys=True, *args, **kw)
def failed(*a, **kw): def failed(*a, **kw):

Loading…
Cancel
Save