Only apply the unroll wrapper once (#72003)
Co-authored-by: Matt Martz <matt@sivel.net> Fixes #71920
This commit is contained in:
parent
8893a244b9
commit
4197666179
2 changed files with 5 additions and 1 deletions
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920)
|
|
@ -257,6 +257,7 @@ def _unroll_iterator(func):
|
|||
return list(ret)
|
||||
return ret
|
||||
|
||||
wrapper.__UNROLLED__ = True
|
||||
return _update_wrapper(wrapper, func)
|
||||
|
||||
|
||||
|
@ -1086,7 +1087,8 @@ class Templar:
|
|||
# Adds Ansible custom filters and tests
|
||||
myenv.filters.update(self._get_filters())
|
||||
for k in myenv.filters:
|
||||
myenv.filters[k] = _unroll_iterator(myenv.filters[k])
|
||||
if not getattr(myenv.filters[k], '__UNROLLED__', False):
|
||||
myenv.filters[k] = _unroll_iterator(myenv.filters[k])
|
||||
myenv.tests.update(self._get_tests())
|
||||
|
||||
if escape_backslashes:
|
||||
|
|
Loading…
Reference in a new issue