diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index 39b3851125a..d5ddd386d78 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -999,7 +999,7 @@ class StrategyBase: msg = 'ending role %s for %s' % (task._role.get_name(), target_host.name) else: skipped = True - skip_reason += 'continuing role %s for %s' % (task._role.get_name(), target_host.name) + skip_reason += ', continuing role %s for %s' % (task._role.get_name(), target_host.name) elif meta_action == 'reset_connection': all_vars = self._variable_manager.get_vars(play=iterator._play, host=target_host, task=task, _hosts=self._hosts_cache, _hosts_all=self._hosts_cache_all) diff --git a/test/integration/targets/meta_tasks/roles/end_role_sample/tasks/main.yml b/test/integration/targets/meta_tasks/roles/end_role_sample/tasks/main.yml new file mode 100644 index 00000000000..43260dc4f1f --- /dev/null +++ b/test/integration/targets/meta_tasks/roles/end_role_sample/tasks/main.yml @@ -0,0 +1,5 @@ +- debug: + msg: "Testing end_role on host {{ inventory_hostname }}" + +- meta: end_role + when: end_role_cond == '2' diff --git a/test/integration/targets/meta_tasks/runme.sh b/test/integration/targets/meta_tasks/runme.sh index feb51ae88a8..4ace6a8bb80 100755 --- a/test/integration/targets/meta_tasks/runme.sh +++ b/test/integration/targets/meta_tasks/runme.sh @@ -79,3 +79,10 @@ ansible-playbook -i inventory_refresh.yml refresh_preserve_dynamic.yml "$@" # test rc when end_host in the rescue section ANSIBLE_FORCE_HANDLERS=0 ansible-playbook test_end_host_rescue_rc.yml + +# test end_role meta task +for test_strategy in linear free; do + out="$(ansible-playbook test_end_role.yml -i inventory.yml -e test_strategy=$test_strategy -e end_role_cond=1 -vv "$@")" + + grep -q "META: end_role conditional evaluated to False," <<< "$out" +done diff --git a/test/integration/targets/meta_tasks/test_end_role.yml b/test/integration/targets/meta_tasks/test_end_role.yml new file mode 100644 index 00000000000..282f4917fdc --- /dev/null +++ b/test/integration/targets/meta_tasks/test_end_role.yml @@ -0,0 +1,6 @@ +- name: Testing end_role with strategy {{ test_strategy | default('linear') }} + hosts: testhost:testhost2 + gather_facts: no + strategy: "{{ test_strategy | default('linear') }}" + roles: + - end_role_sample