diff --git a/changelogs/fragments/wrap_native_text-non-collections-only.yml b/changelogs/fragments/wrap_native_text-non-collections-only.yml new file mode 100644 index 00000000000..3986fa19d4d --- /dev/null +++ b/changelogs/fragments/wrap_native_text-non-collections-only.yml @@ -0,0 +1,2 @@ +bugfixes: + - Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS. diff --git a/lib/ansible/template/__init__.py b/lib/ansible/template/__init__.py index 3bc074a3c98..884673cc695 100644 --- a/lib/ansible/template/__init__.py +++ b/lib/ansible/template/__init__.py @@ -511,7 +511,8 @@ class JinjaPluginIntercept(MutableMapping): for func_name, func in iteritems(method_map()): fq_name = '.'.join((parent_prefix, func_name)) # FIXME: detect/warn on intra-collection function name collisions - if self._jinja2_native and func_name in C.STRING_TYPE_FILTERS: + if self._jinja2_native and fq_name.startswith(('ansible.builtin.', 'ansible.legacy.')) and \ + func_name in C.STRING_TYPE_FILTERS: self._collection_jinja_func_cache[fq_name] = _wrap_native_text(func) else: self._collection_jinja_func_cache[fq_name] = _unroll_iterator(func)