diff options
author | Martin Krizek <martin.krizek@gmail.com> | 2020-09-27 09:51:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-27 02:51:14 -0500 |
commit | a63baa329095cd0850ad9c2fadc365186439017f (patch) | |
tree | 0394a2e79952cf383d7e3cbc467a2f25b97c8922 | |
parent | 3072e439098360749a532da0350ae8c9807529d1 (diff) | |
download | ansible-a63baa329095cd0850ad9c2fadc365186439017f.tar.gz |
Provide more information in AnsibleUndefinedVariable (#71666) (#71877)
Fixes #55152
(cherry picked from commit 00b22ab55ea1b514053ca8a9ba3928bc210ea3aa)
4 files changed, 22 insertions, 2 deletions
diff --git a/changelogs/fragments/55152-add-more-info-to-AnsibleUndefinedVariable.yml b/changelogs/fragments/55152-add-more-info-to-AnsibleUndefinedVariable.yml new file mode 100644 index 0000000000..a229848bcb --- /dev/null +++ b/changelogs/fragments/55152-add-more-info-to-AnsibleUndefinedVariable.yml @@ -0,0 +1,2 @@ +bugfixes: + - Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152) diff --git a/lib/ansible/template/vars.py b/lib/ansible/template/vars.py index 164cf1a1ab..464deecf80 100644 --- a/lib/ansible/template/vars.py +++ b/lib/ansible/template/vars.py @@ -104,8 +104,8 @@ class AnsibleJ2Vars(Mapping): value = None try: value = self._templar.template(variable) - except AnsibleUndefinedVariable: - raise + except AnsibleUndefinedVariable as e: + raise AnsibleUndefinedVariable("%s: %s" % (to_native(variable), e.message)) except Exception as e: msg = getattr(e, 'message', None) or to_native(e) raise AnsibleError("An unhandled exception occurred while templating '%s'. " diff --git a/test/integration/targets/template/runme.sh b/test/integration/targets/template/runme.sh index abdd62f28b..5994a06050 100755 --- a/test/integration/targets/template/runme.sh +++ b/test/integration/targets/template/runme.sh @@ -19,3 +19,6 @@ ansible-playbook corner_cases.yml -v "$@" # Test for #57351 ansible-playbook filter_plugins.yml -v "$@" + +# https://github.com/ansible/ansible/issues/55152 +ansible-playbook undefined_var_info.yml -v "$@" diff --git a/test/integration/targets/template/undefined_var_info.yml b/test/integration/targets/template/undefined_var_info.yml new file mode 100644 index 0000000000..b96a58db14 --- /dev/null +++ b/test/integration/targets/template/undefined_var_info.yml @@ -0,0 +1,15 @@ +- hosts: localhost + gather_facts: no + vars: + foo: [] + bar: "{{ foo[0] }}" + tasks: + - debug: + msg: "{{ bar }}" + register: result + ignore_errors: yes + + - assert: + that: + - '"foo[0]" in result.msg' + - '"object has no element 0" in result.msg' |