Fix task get_name to always prepend the role name (#72511)
* Fix 'role_name : tast_name' notation if task contains role name * Add tests for notifying handler names which contain the role name Co-authored-by: Thomas Wouters <thomaswouters@gmail.com>
This commit is contained in:
parent
c8590c7482
commit
0ed7bfc694
5 changed files with 35 additions and 5 deletions
|
@ -0,0 +1,3 @@
|
||||||
|
bugfixes:
|
||||||
|
- 'Fix notifying handlers via `role_name : handler_name` when handler name contains the role name. (https://github.com/ansible/ansible/issues/70582)'
|
||||||
|
- 'Fix --list-tasks format `role_name : task_name` when task name contains the role name. (https://github.com/ansible/ansible/issues/72505)'
|
|
@ -122,7 +122,7 @@ class Task(Base, Conditional, Taggable, CollectionSearch):
|
||||||
if self._role:
|
if self._role:
|
||||||
role_name = self._role.get_name(include_role_fqcn=include_role_fqcn)
|
role_name = self._role.get_name(include_role_fqcn=include_role_fqcn)
|
||||||
|
|
||||||
if self._role and self.name and role_name not in self.name:
|
if self._role and self.name:
|
||||||
return "%s : %s" % (role_name, self.name)
|
return "%s : %s" % (role_name, self.name)
|
||||||
elif self.name:
|
elif self.name:
|
||||||
return self.name
|
return self.name
|
||||||
|
|
|
@ -1010,10 +1010,7 @@ class StrategyBase:
|
||||||
notified_hosts += failed_hosts
|
notified_hosts += failed_hosts
|
||||||
|
|
||||||
if len(notified_hosts) > 0:
|
if len(notified_hosts) > 0:
|
||||||
saved_name = handler.name
|
|
||||||
handler.name = handler_name
|
|
||||||
self._tqm.send_callback('v2_playbook_on_handler_task_start', handler)
|
self._tqm.send_callback('v2_playbook_on_handler_task_start', handler)
|
||||||
handler.name = saved_name
|
|
||||||
|
|
||||||
bypass_host_loop = False
|
bypass_host_loop = False
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -4,3 +4,24 @@
|
||||||
set_fact:
|
set_fact:
|
||||||
handler_counter: '{{ handler_counter|int + 1 }}'
|
handler_counter: '{{ handler_counter|int + 1 }}'
|
||||||
failed_when: handler_counter|int > 1
|
failed_when: handler_counter|int > 1
|
||||||
|
|
||||||
|
# The following handler contains the role name and should be callable as:
|
||||||
|
# 'common_handlers test_fqcn_handler'
|
||||||
|
# 'common_handlers : common_handlers test_fqcn_handler`
|
||||||
|
# 'testns.testcoll.common_handlers : common_handlers test_fqcn_handler'
|
||||||
|
- name: common_handlers test_fqcn_handler
|
||||||
|
set_fact:
|
||||||
|
handler_counter: '{{ handler_counter|int + 1}}'
|
||||||
|
failed_when: handler_counter|int > 2
|
||||||
|
|
||||||
|
# The following handler starts with 'role name : ' and should _not_ be listed as:
|
||||||
|
# 'common_handlers : common_handlers : test_fqcn_handler`
|
||||||
|
# 'testns.testcoll.common_handlers : common_handlers : test_fqcn_handler'
|
||||||
|
- name: 'common_handlers : test_fqcn_handler'
|
||||||
|
meta: noop
|
||||||
|
|
||||||
|
# The following handler starts with 'fqcn : ' and should _not_ be listed as:
|
||||||
|
# 'common_handlers : testns.testcoll.common_handlers : test_fqcn_handler`
|
||||||
|
# 'testns.testcoll.common_handlers : testns.testcoll.common_handlers : test_fqcn_handler'
|
||||||
|
- name: 'testns.testcoll.common_handlers : test_fqcn_handler'
|
||||||
|
meta: noop
|
||||||
|
|
|
@ -1,7 +1,16 @@
|
||||||
- debug:
|
- name: Fire fqcn handler 1
|
||||||
|
debug:
|
||||||
msg: Fire fqcn handler
|
msg: Fire fqcn handler
|
||||||
changed_when: true
|
changed_when: true
|
||||||
notify:
|
notify:
|
||||||
- 'testns.testcoll.common_handlers : test_fqcn_handler'
|
- 'testns.testcoll.common_handlers : test_fqcn_handler'
|
||||||
- 'common_handlers : test_fqcn_handler'
|
- 'common_handlers : test_fqcn_handler'
|
||||||
- 'test_fqcn_handler'
|
- 'test_fqcn_handler'
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
msg: Fire fqcn handler with role name
|
||||||
|
changed_when: true
|
||||||
|
notify:
|
||||||
|
- 'testns.testcoll.common_handlers : common_handlers test_fqcn_handler'
|
||||||
|
- 'common_handlers : common_handlers test_fqcn_handler'
|
||||||
|
- 'common_handlers test_fqcn_handler'
|
||||||
|
|
Loading…
Reference in a new issue