1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

dependent lookup: prevent deprecation warning with ansible-core 2.14 (#5543)

* Prevent deprecation warning.

* Improve naming and add comment.
This commit is contained in:
Felix Fontein 2022-11-15 08:12:09 +01:00 committed by GitHub
parent 672385309c
commit 60c8b9a67f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- "dependent lookup plugin - avoid warning on deprecated parameter for ``Templar.template()`` (https://github.com/ansible-collections/community.general/pull/5543)."

View file

@ -125,8 +125,16 @@ from ansible.errors import AnsibleLookupError
from ansible.module_utils.common._collections_compat import Mapping, Sequence from ansible.module_utils.common._collections_compat import Mapping, Sequence
from ansible.module_utils.six import string_types from ansible.module_utils.six import string_types
from ansible.plugins.lookup import LookupBase from ansible.plugins.lookup import LookupBase
from ansible.release import __version__ as ansible_version
from ansible.template import Templar from ansible.template import Templar
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
# Whether Templar has a cache, which can be controlled by Templar.template()'s cache option.
# The cache was removed for ansible-core 2.14 (https://github.com/ansible/ansible/pull/78419)
_TEMPLAR_HAS_TEMPLATE_CACHE = LooseVersion(ansible_version) < LooseVersion('2.14.0')
class LookupModule(LookupBase): class LookupModule(LookupBase):
def __evaluate(self, expression, templar, variables): def __evaluate(self, expression, templar, variables):
@ -136,7 +144,10 @@ class LookupModule(LookupBase):
``variables`` are the variables to use. ``variables`` are the variables to use.
""" """
templar.available_variables = variables or {} templar.available_variables = variables or {}
return templar.template("{0}{1}{2}".format("{{", expression, "}}"), cache=False) expression = "{0}{1}{2}".format("{{", expression, "}}")
if _TEMPLAR_HAS_TEMPLATE_CACHE:
return templar.template(expression, cache=False)
return templar.template(expression)
def __process(self, result, terms, index, current, templar, variables): def __process(self, result, terms, index, current, templar, variables):
"""Fills ``result`` list with evaluated items. """Fills ``result`` list with evaluated items.