Wrap some filters so they return unicode.

The rules are -- if the filter returns str type and the str may contain
non-ascii characters then wrap it to convert to unicode type.  Not
needed if the function already returns unicode type or only returns
ascii characters

Conflicts:
	lib/ansible/runner/filter_plugins/core.py
release1.8.3
Toshio Kuratomi 10 years ago committed by James Cammarata
parent a1a69d6dc5
commit b30cb192e8

@ -24,12 +24,16 @@ import pipes
import glob
import re
import collections
from functools import partial
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 jinja2.filters import environmentfilter
from distutils.version import LooseVersion, StrictVersion
from ansible import errors
from ansible.utils.hashing import md5s, checksum_s
from ansible.utils.unicode import unicode_wrap
def to_nice_yaml(*a, **kw):
@ -249,8 +253,8 @@ class FilterModule(object):
def filters(self):
return {
# base 64
'b64decode': base64.b64decode,
'b64encode': base64.b64encode,
'b64decode': partial(unicode_wrap, base64.b64decode),
'b64encode': partial(unicode_wrap, base64.b64encode),
# json
'to_json': to_json,
@ -263,11 +267,11 @@ class FilterModule(object):
'from_yaml': yaml.safe_load,
# path
'basename': os.path.basename,
'dirname': os.path.dirname,
'expanduser': os.path.expanduser,
'realpath': os.path.realpath,
'relpath': os.path.relpath,
'basename': unicode_wrap(os.path.basename),
'dirname': unicode_wrap(os.path.dirname),
'expanduser': unicode_wrap(os.path.expanduser),
'realpath': unicode_wrap(os.path.realpath),
'relpath': unicode_wrap(os.path.relpath),
# failure testing
'failed' : failed,

Loading…
Cancel
Save