Commit b8a66ce5 by Michael DeHaan

Lookup plugins in included files now look in paths relative to their files, allowing role usage.

parent 7f0e89a2
...@@ -25,6 +25,7 @@ class LookupModule(object): ...@@ -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): ...@@ -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): ...@@ -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?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment