From 9a18385fab041903b597106a8ece2ef1f2ba355a Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Fri, 22 Jun 2018 13:59:15 -0500 Subject: [PATCH] Validate that rescue and always have an accompanying block. Fixes #26751 (#41822) --- lib/ansible/playbook/block.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/ansible/playbook/block.py b/lib/ansible/playbook/block.py index 9bbe8883859..e51e2218792 100644 --- a/lib/ansible/playbook/block.py +++ b/lib/ansible/playbook/block.py @@ -161,6 +161,12 @@ class Block(Base, Become, Conditional, Taggable): except AssertionError as e: raise AnsibleParserError("A malformed block was encountered while loading always", obj=self._ds, orig_exc=e) + def _validate_always(self, attr, name, value): + if value and not self.block: + raise AnsibleParserError("'%s' keyword cannot be used without 'block'" % name, obj=self._ds) + + _validate_rescue = _validate_always + def get_dep_chain(self): if self._dep_chain is None: if self._parent: