mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add a template lookup plugin
Requires that inject be passed to run
This commit is contained in:
parent
37d9acc097
commit
c519d5dac0
3 changed files with 29 additions and 2 deletions
|
@ -112,7 +112,7 @@ class Play(object):
|
||||||
if plugin_name not in self.playbook.lookup_plugins_list:
|
if plugin_name not in self.playbook.lookup_plugins_list:
|
||||||
raise errors.AnsibleError("cannot find lookup plugin named %s for usage in with_%s" % (plugin_name, plugin_name))
|
raise errors.AnsibleError("cannot find lookup plugin named %s for usage in with_%s" % (plugin_name, plugin_name))
|
||||||
terms = utils.varReplaceWithItems(self.basedir, x[k], task_vars)
|
terms = utils.varReplaceWithItems(self.basedir, x[k], task_vars)
|
||||||
items = self.playbook.lookup_plugins_list[plugin_name].LookupModule(basedir=self.basedir, runner=None).run(terms)
|
items = self.playbook.lookup_plugins_list[plugin_name].LookupModule(basedir=self.basedir, runner=None).run(terms, inject=task_vars)
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
mv = task_vars.copy()
|
mv = task_vars.copy()
|
||||||
|
|
|
@ -295,7 +295,7 @@ class Runner(object):
|
||||||
if items_plugin is not None and items_plugin in self.lookup_plugins:
|
if items_plugin is not None and items_plugin in self.lookup_plugins:
|
||||||
items_terms = self.module_vars.get('items_lookup_terms', '')
|
items_terms = self.module_vars.get('items_lookup_terms', '')
|
||||||
items_terms = utils.varReplaceWithItems(self.basedir, items_terms, inject)
|
items_terms = utils.varReplaceWithItems(self.basedir, items_terms, inject)
|
||||||
items = self.lookup_plugins[items_plugin].run(items_terms)
|
items = self.lookup_plugins[items_plugin].run(items_terms, inject=inject)
|
||||||
if type(items) != list:
|
if type(items) != list:
|
||||||
raise errors.AnsibleError("lookup plugins have to return a list: %r" % items)
|
raise errors.AnsibleError("lookup plugins have to return a list: %r" % items)
|
||||||
|
|
||||||
|
|
27
lib/ansible/runner/lookup_plugins/template.py
Normal file
27
lib/ansible/runner/lookup_plugins/template.py
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>
|
||||||
|
#
|
||||||
|
# This file is part of Ansible
|
||||||
|
#
|
||||||
|
# Ansible is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Ansible is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
from ansible import utils
|
||||||
|
|
||||||
|
class LookupModule(object):
|
||||||
|
|
||||||
|
def __init__(self, basedir=None, **kwargs):
|
||||||
|
self.basedir = basedir
|
||||||
|
|
||||||
|
def run(self, terms, inject=None, **kwargs):
|
||||||
|
return utils.template_from_file(self.basedir, terms, inject)
|
||||||
|
|
Loading…
Reference in a new issue