mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
handler: notify a handler by name _and_ listen
Before we only allowed either notify by name or listen and name had precedence.
This commit is contained in:
parent
ce4330d986
commit
e69d26270f
1 changed files with 16 additions and 16 deletions
|
@ -393,6 +393,22 @@ class StrategyBase:
|
||||||
# dependency chain of the current task (if it's from a role), otherwise
|
# dependency chain of the current task (if it's from a role), otherwise
|
||||||
# we just look through the list of handlers in the current play/all
|
# we just look through the list of handlers in the current play/all
|
||||||
# roles and use the first one that matches the notify name
|
# roles and use the first one that matches the notify name
|
||||||
|
target_handler = search_handler_blocks(handler_name, iterator._play.handlers)
|
||||||
|
if target_handler is not None:
|
||||||
|
found = True
|
||||||
|
if original_host not in self._notified_handlers[target_handler]:
|
||||||
|
self._notified_handlers[target_handler].append(original_host)
|
||||||
|
# FIXME: should this be a callback?
|
||||||
|
display.vv("NOTIFIED HANDLER %s" % (handler_name,))
|
||||||
|
else:
|
||||||
|
# As there may be more than one handler with the notified name as the
|
||||||
|
# parent, so we just keep track of whether or not we found one at all
|
||||||
|
for target_handler in self._notified_handlers:
|
||||||
|
if parent_handler_match(target_handler, handler_name):
|
||||||
|
self._notified_handlers[target_handler].append(original_host)
|
||||||
|
display.vv("NOTIFIED HANDLER %s" % (target_handler.get_name(),))
|
||||||
|
found = True
|
||||||
|
|
||||||
if handler_name in self._listening_handlers:
|
if handler_name in self._listening_handlers:
|
||||||
for listening_handler_name in self._listening_handlers[handler_name]:
|
for listening_handler_name in self._listening_handlers[handler_name]:
|
||||||
listening_handler = search_handler_blocks(listening_handler_name, iterator._play.handlers)
|
listening_handler = search_handler_blocks(listening_handler_name, iterator._play.handlers)
|
||||||
|
@ -401,22 +417,6 @@ class StrategyBase:
|
||||||
if original_host not in self._notified_handlers[listening_handler]:
|
if original_host not in self._notified_handlers[listening_handler]:
|
||||||
self._notified_handlers[listening_handler].append(original_host)
|
self._notified_handlers[listening_handler].append(original_host)
|
||||||
display.vv("NOTIFIED HANDLER %s" % (listening_handler_name,))
|
display.vv("NOTIFIED HANDLER %s" % (listening_handler_name,))
|
||||||
else:
|
|
||||||
target_handler = search_handler_blocks(handler_name, iterator._play.handlers)
|
|
||||||
if target_handler is not None:
|
|
||||||
found = True
|
|
||||||
if original_host not in self._notified_handlers[target_handler]:
|
|
||||||
self._notified_handlers[target_handler].append(original_host)
|
|
||||||
# FIXME: should this be a callback?
|
|
||||||
display.vv("NOTIFIED HANDLER %s" % (handler_name,))
|
|
||||||
else:
|
|
||||||
# As there may be more than one handler with the notified name as the
|
|
||||||
# parent, so we just keep track of whether or not we found one at all
|
|
||||||
for target_handler in self._notified_handlers:
|
|
||||||
if parent_handler_match(target_handler, handler_name):
|
|
||||||
self._notified_handlers[target_handler].append(original_host)
|
|
||||||
display.vv("NOTIFIED HANDLER %s" % (target_handler.get_name(),))
|
|
||||||
found = True
|
|
||||||
|
|
||||||
# and if none were found, then we raise an error
|
# and if none were found, then we raise an error
|
||||||
if not found:
|
if not found:
|
||||||
|
|
Loading…
Reference in a new issue