From 01a44aaf73c35c2ed5df88493bba43cc46123adb Mon Sep 17 00:00:00 2001 From: mhorak Date: Thu, 14 Aug 2025 08:51:34 +0000 Subject: [PATCH] Update www-install-win-updates.yaml --- www-install-win-updates.yaml | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/www-install-win-updates.yaml b/www-install-win-updates.yaml index 84f5771..d8ebe4c 100644 --- a/www-install-win-updates.yaml +++ b/www-install-win-updates.yaml @@ -163,25 +163,27 @@ Template={{ job_name }}. URL={{ job_url }}. - tasks: + tasks: - name: Aggregate per-host patch failures (from first play) run_once: true delegate_to: localhost - vars: - flags: "{{ ansible_play_hosts_all - | map('extract', hostvars, 'patch_failed_host') - | map('default', false) | list }}" - failed_hosts: >- - {{ ansible_play_hosts_all - | select('extract', hostvars, 'patch_failed_host') - | list - | select('equalto', true) - | list - | map('extract', hostvars, 'inventory_hostname') - | list }} set_fact: - any_patch_failed: "{{ (flags | select('equalto', true) | list | length) > 0 }}" - failed_hosts_csv: "{{ failed_hosts | join(', ') if failed_hosts|length>0 else 'None' }}" + failed_hosts_list: [] + + - name: Collect failed hosts (no extract filter) + run_once: true + delegate_to: localhost + set_fact: + failed_hosts_list: "{{ failed_hosts_list + [item] }}" + loop: "{{ ansible_play_hosts_all }}" + when: hostvars[item].patch_failed_host | default(false) + + - name: Build flags from failed hosts list + run_once: true + delegate_to: localhost + set_fact: + any_patch_failed: "{{ (failed_hosts_list | length) > 0 }}" + failed_hosts_csv: "{{ failed_hosts_list | join(', ') if failed_hosts_list | length > 0 else 'None' }}" - name: Build final status (only from per-host flags) run_once: true