summaryrefslogtreecommitdiff
path: root/lib/ansible/playbook/play.py
diff options
context:
space:
mode:
authorMatt Martz <matt@sivel.net>2018-05-01 12:18:36 -0500
committerGitHub <noreply@github.com>2018-05-01 12:18:36 -0500
commit6acdc363174e9d1240bbd37e8ee0a8530f56b994 (patch)
tree6e4384edd87f770dca0cc1c1996efa1fa353682c /lib/ansible/playbook/play.py
parent5a6bdef76b442f73d47b1d011487a5a30b3f0298 (diff)
downloadansible-6acdc363174e9d1240bbd37e8ee0a8530f56b994.tar.gz
Ensure we don't overwrite handlers from include_role when loading a play. Fixes #18140 (#39563)
Diffstat (limited to 'lib/ansible/playbook/play.py')
-rw-r--r--lib/ansible/playbook/play.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py
index e4fe7c17e4..72b4cbc357 100644
--- a/lib/ansible/playbook/play.py
+++ b/lib/ansible/playbook/play.py
@@ -171,7 +171,11 @@ class Play(Base, Taggable, Become):
Bare handlers outside of a block are given an implicit block.
'''
try:
- return load_list_of_blocks(ds=ds, play=self, use_handlers=True, variable_manager=self._variable_manager, loader=self._loader)
+ return self._extend_value(
+ self.handlers,
+ load_list_of_blocks(ds=ds, play=self, use_handlers=True, variable_manager=self._variable_manager, loader=self._loader),
+ prepend=True
+ )
except AssertionError as e:
raise AnsibleParserError("A malformed block was encountered while loading handlers", obj=self._ds, orig_exc=e)