Lookup plugins in included files now look in paths relative to their files, allowing role usage.
This commit is contained in:
parent
7f0e89a2f6
commit
b8a66ce5bb
2 changed files with 8 additions and 0 deletions
|
@ -25,6 +25,7 @@ class LookupModule(object):
|
||||||
self.basedir = basedir
|
self.basedir = basedir
|
||||||
|
|
||||||
def run(self, terms, inject=None, **kwargs):
|
def run(self, terms, inject=None, **kwargs):
|
||||||
|
|
||||||
terms = utils.listify_lookup_plugin_terms(terms, self.basedir, inject)
|
terms = utils.listify_lookup_plugin_terms(terms, self.basedir, inject)
|
||||||
ret = []
|
ret = []
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,7 @@ def lookup(name, *args, **kwargs):
|
||||||
from ansible import utils
|
from ansible import utils
|
||||||
instance = utils.plugins.lookup_loader.get(name.lower(), basedir=kwargs.get('basedir',None))
|
instance = utils.plugins.lookup_loader.get(name.lower(), basedir=kwargs.get('basedir',None))
|
||||||
vars = kwargs.get('vars', None)
|
vars = kwargs.get('vars', None)
|
||||||
|
|
||||||
if instance is not None:
|
if instance is not None:
|
||||||
ran = instance.run(*args, inject=vars, **kwargs)
|
ran = instance.run(*args, inject=vars, **kwargs)
|
||||||
return ",".join(ran)
|
return ",".join(ran)
|
||||||
|
@ -470,6 +471,12 @@ def template_from_string(basedir, data, vars):
|
||||||
environment.filters.update(_get_filters())
|
environment.filters.update(_get_filters())
|
||||||
environment.template_class = J2Template
|
environment.template_class = J2Template
|
||||||
|
|
||||||
|
if '_original_file' in vars:
|
||||||
|
basedir = os.path.dirname(vars['_original_file'])
|
||||||
|
filesdir = os.path.join(basedir, '..', 'files')
|
||||||
|
if os.path.exists(filesdir):
|
||||||
|
basedir = filesdir
|
||||||
|
|
||||||
# TODO: may need some way of using lookup plugins here seeing we aren't calling
|
# TODO: may need some way of using lookup plugins here seeing we aren't calling
|
||||||
# the legacy engine, lookup() as a function, perhaps?
|
# the legacy engine, lookup() as a function, perhaps?
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue