From 829a88b906d7fcc0155512dc63781f563f8bb9d1 Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Wed, 12 Aug 2015 07:37:03 -0400 Subject: [PATCH] Disable undefined error failures during conditional templating This allows us to properly catch the 'is defined' and 'is undefined' checks and return the correct boolean result. Fixes #11892 --- lib/ansible/playbook/conditional.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/ansible/playbook/conditional.py b/lib/ansible/playbook/conditional.py index ae7a5f0ba4c..f0acbbdb3ff 100644 --- a/lib/ansible/playbook/conditional.py +++ b/lib/ansible/playbook/conditional.py @@ -66,8 +66,6 @@ class Conditional: for conditional in self.when: if not self._check_conditional(conditional, templar, all_vars): return False - except UndefinedError, e: - raise AnsibleError("The conditional check '%s' failed due to an undefined variable. The error was: %s" % (conditional, e), obj=ds) except Exception, e: raise AnsibleError("The conditional check '%s' failed. The error was: %s" % (conditional, e), obj=ds) @@ -96,7 +94,7 @@ class Conditional: # a Jinja2 evaluation that results in something Python can eval! presented = "{%% if %s %%} True {%% else %%} False {%% endif %%}" % conditional - conditional = templar.template(presented) + conditional = templar.template(presented, fail_on_undefined=False) val = conditional.strip() if val == presented: