From 88b6ecef519e52fcd2b7368905f847fa53dcd1d5 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Mon, 28 Oct 2024 17:54:12 +0100 Subject: [PATCH] Don't try to set devices fact when osd_auto_discovery was skipped Right now, under certain OS and Ansible versions, ie Rocky Linux and ansible-core 2.17, `devices_check` variable is getting defined even if task was skipped. That results in set_fact to fail, as resulting variable has no `results` key in it. Structure of such variable looks like that: ``` "devices_check": { "changed": false, "false_condition": "osd_auto_discovery | default(False) | bool", "skip_reason": "Conditional result was False", "skipped": true } ``` Checking for task not being skipped solves such issues. Signed-off-by: Dmitriy Rabotyagov (cherry picked from commit 9405558d03b633f8677d0f5f559028ca61ea4403) --- roles/ceph-facts/tasks/devices.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/ceph-facts/tasks/devices.yml b/roles/ceph-facts/tasks/devices.yml index 95bd82a83..7f9b3996c 100644 --- a/roles/ceph-facts/tasks/devices.yml +++ b/roles/ceph-facts/tasks/devices.yml @@ -76,5 +76,6 @@ loop: "{{ devices_check.results }}" when: - devices_check is defined + - devices_check is not skipped - not item.skipped | default(false) - not item.failed | default(false)