Check that AnsibleUndefinedVariable doesn't occur when an unused variable references an undefined variable (#35571)

* Check that AnsibleUndefinedVariable doesn't occur

* AnsibleUndefinedVariable exc.: don't modify type
This commit is contained in:
Pilou 2018-02-02 18:25:13 +01:00 committed by Toshio Kuratomi
parent c37b997abc
commit d608eb9530
3 changed files with 15 additions and 1 deletions

View file

@ -23,7 +23,7 @@ from collections import Mapping
from jinja2.utils import missing
from ansible.errors import AnsibleError
from ansible.errors import AnsibleError, AnsibleUndefinedVariable
from ansible.module_utils.six import iteritems
from ansible.module_utils._text import to_native
@ -105,6 +105,8 @@ class AnsibleJ2Vars(Mapping):
value = None
try:
value = self._templar.template(variable)
except AnsibleUndefinedVariable:
raise
except Exception as e:
msg = getattr(e, 'message') or to_native(e)
raise AnsibleError("An unhandled exception occurred while templating '%s'. "

View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -eux
ANSIBLE_ROLES_PATH=../ ansible-playbook template.yml -i ../../inventory -e @../../integration_config.yml -v "$@"
# Test for #35571
ansible testhost -i testhost, -m debug -a 'msg={{ hostvars["localhost"] }}' -e "vars1={{ undef }}" -e "vars2={{ vars1 }}"

View file

@ -0,0 +1,4 @@
- hosts: testhost
gather_facts: yes
roles:
- { role: template }