diff --git a/lib/ansible/utils/template.py b/lib/ansible/utils/template.py index 7e7b984fe4c..6e8893e2c84 100644 --- a/lib/ansible/utils/template.py +++ b/lib/ansible/utils/template.py @@ -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) diff --git a/test/TestUtils.py b/test/TestUtils.py index 1cf6e61bf26..7b748919edd 100644 --- a/test/TestUtils.py +++ b/test/TestUtils.py @@ -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'