diff options
author | Martin Krizek <martin.krizek@gmail.com> | 2020-09-28 07:34:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-28 00:34:38 -0500 |
commit | 4df129c6ae3c5f33fccd7e70ccb629610af60dfb (patch) | |
tree | bb494801b146f57f17569387d9d6ebae8264e81e | |
parent | c4e3552c8d08f4c563b28c1d8c27de3742919030 (diff) | |
download | ansible-4df129c6ae3c5f33fccd7e70ccb629610af60dfb.tar.gz |
Provide more information in AnsibleUndefinedVariable (#71666) (#71876)
* Provide more information in AnsibleUndefinedVariable
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 61511ac82f..8e21352d29 100755 --- a/test/integration/targets/template/runme.sh +++ b/test/integration/targets/template/runme.sh @@ -22,3 +22,6 @@ ansible-playbook filter_plugins.yml -v "$@" # https://github.com/ansible/ansible/issues/68699 ansible-playbook unused_vars_include.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' |