From 7a2d493e6760edf32ba2c1f6d3268209d95ba208 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Fri, 12 Apr 2013 18:44:40 -0400 Subject: [PATCH] Teach lookup plugins that if they can't evaluate something they can wait and do it later. --- lib/ansible/utils/template.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ansible/utils/template.py b/lib/ansible/utils/template.py index f7b0931d3e..78b6487642 100644 --- a/lib/ansible/utils/template.py +++ b/lib/ansible/utils/template.py @@ -183,6 +183,10 @@ def _legacy_varFind(basedir, text, vars, lookup_fatal, depth, expand_lists): args = args.strip() # args have to be templated args = legacy_varReplace(basedir, args, vars, lookup_fatal, depth + 1, True) + if isinstance(args, basestring) and args.find('$') != -1: + # unable to evaluate something like $FILE($item) at this point, try to evaluate later + return None + instance = utils.plugins.lookup_loader.get(lookup_plugin_name.lower(), basedir=basedir) if instance is not None: