From 365bfd732e924e05717aa685915f5ebab2754dde Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Tue, 20 May 2014 13:39:23 -0500 Subject: [PATCH] Don't use listify_ function, when all we want to do is template variables This was causing a bug in the env module, due to the fact that we now pass variables for the module through the templating engine combined with the fact that we split-up the hostvars and setup variables. As a result, if a variable in the env lookup had the same name as the variable in Ansible, it would try and template itself over and over again until the recursion limit would be hit, at which time an empty string was returned. Fixes #7396 --- lib/ansible/runner/lookup_plugins/env.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/ansible/runner/lookup_plugins/env.py b/lib/ansible/runner/lookup_plugins/env.py index 6acc5f59dd8..d4f85356edf 100644 --- a/lib/ansible/runner/lookup_plugins/env.py +++ b/lib/ansible/runner/lookup_plugins/env.py @@ -16,6 +16,7 @@ # along with Ansible. If not, see . from ansible import utils, errors +from ansible.utils import template import os class LookupModule(object): @@ -25,7 +26,10 @@ class LookupModule(object): def run(self, terms, inject=None, **kwargs): - terms = utils.listify_lookup_plugin_terms(terms, self.basedir, inject) + try: + terms = template.template(self.basedir, terms, inject) + except Exception, e: + pass if isinstance(terms, basestring): terms = [ terms ]