diff options
author | James Cammarata <jimi@sngx.net> | 2015-06-27 15:37:10 -0400 |
---|---|---|
committer | James Cammarata <jimi@sngx.net> | 2015-06-27 15:37:10 -0400 |
commit | 8ef28253e35457a254d526ef8cbc1a8387d7d9ba (patch) | |
tree | 9ee3052b02275f7c3074a1a27018850058d94b4d /lib/ansible/playbook/conditional.py | |
parent | 0eb1c880ddac9547560040311739b5ca8291a642 (diff) | |
download | ansible-8ef28253e35457a254d526ef8cbc1a8387d7d9ba.tar.gz |
Properly catch and report conditional test failures
Diffstat (limited to 'lib/ansible/playbook/conditional.py')
-rw-r--r-- | lib/ansible/playbook/conditional.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/ansible/playbook/conditional.py b/lib/ansible/playbook/conditional.py index ff00a01de2..0cc0719515 100644 --- a/lib/ansible/playbook/conditional.py +++ b/lib/ansible/playbook/conditional.py @@ -19,6 +19,8 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type +from jinja2.exceptions import UndefinedError + from ansible.errors import * from ansible.playbook.attribute import FieldAttribute from ansible.template import Templar @@ -53,9 +55,14 @@ class Conditional: False if any of them evaluate as such. ''' - for conditional in self.when: - if not self._check_conditional(conditional, templar, all_vars): - return False + try: + 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=self.get_ds()) + except Exception, e: + raise AnsibleError("The conditional check '%s' failed. The error was: %s" % (conditional, e), obj=self.get_ds()) return True |