Merge pull request #1621 from dhozac/lookup-with-vars

Lookup plugin arguments need to be templated
This commit is contained in:
Michael DeHaan 2012-11-14 06:32:39 -08:00
commit 52e2654faf
2 changed files with 4 additions and 2 deletions

View file

@ -157,6 +157,8 @@ def _varFind(basedir, text, vars, depth=0):
if lookup_plugin_name == 'LOOKUP':
lookup_plugin_name, args = args.split(",", 1)
args = args.strip()
# args have to be templated
args = varReplace(basedir, args, vars, depth=depth+1, expand_lists=True)
instance = utils.plugins.lookup_loader.get(lookup_plugin_name.lower(), basedir=basedir)
if instance is not None:
replacement = instance.run(args, inject=vars)

View file

@ -272,9 +272,9 @@ class TestUtils(unittest.TestCase):
assert res == u'hello oh great one'
def test_varReplace_include(self):
template = 'hello $FILE(world) $LOOKUP(file, world)'
template = 'hello $FILE(world) $LOOKUP(file, $filename)'
res = ansible.utils.template("test", template, {}, expand_lists=True)
res = ansible.utils.template("test", template, {'filename': 'world'}, expand_lists=True)
assert res == u'hello world world'