From 8fe9618c8406c8e7ba30cea7a77e6fa6f16059ec Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Wed, 22 May 2019 11:28:06 -0400 Subject: [PATCH] preserve underlying block building error (#56465) fixes #56462 --- changelogs/fragments/better_task_error.yml | 2 ++ lib/ansible/playbook/play.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/better_task_error.yml diff --git a/changelogs/fragments/better_task_error.yml b/changelogs/fragments/better_task_error.yml new file mode 100644 index 00000000000..4ab8b109e12 --- /dev/null +++ b/changelogs/fragments/better_task_error.yml @@ -0,0 +1,2 @@ +bugfixes: + - display underlying error when reporting an invalid ``tasks:`` block. diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 892c7ec2f50..2eb0c743750 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -22,6 +22,7 @@ __metaclass__ = type from ansible import constants as C from ansible import context from ansible.errors import AnsibleParserError, AnsibleAssertionError +from ansible.module_utils._text import to_native from ansible.module_utils.six import string_types from ansible.playbook.attribute import FieldAttribute from ansible.playbook.base import Base @@ -145,7 +146,7 @@ class Play(Base, Taggable, CollectionSearch): try: return load_list_of_blocks(ds=ds, play=self, variable_manager=self._variable_manager, loader=self._loader) except AssertionError as e: - raise AnsibleParserError("A malformed block was encountered while loading tasks", obj=self._ds, orig_exc=e) + raise AnsibleParserError("A malformed block was encountered while loading tasks: %s" % to_native(e), obj=self._ds, orig_exc=e) def _load_pre_tasks(self, attr, ds): '''