Skip to content

Commit

Permalink
ceph-osd: Fix crush_rules.yml in check mode
Browse files Browse the repository at this point in the history
Set a default value for `item.stdout` before passing it to `from_json()`. The
`when` condition doesn't prevent this template from being evaluated in check
mode, so it fails if `item.stdout` doesn't contain a valid JSON string.

Signed-off-by: Benoît Knecht <bknecht@protonmail.ch>
(cherry picked from commit ef05e9a)
  • Loading branch information
BenoitKnecht authored and guits committed Feb 16, 2022
1 parent 9df27fc commit 3ba0e4b
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions roles/ceph-osd/tasks/crush_rules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
# NOTE(leseb): we should actually fail if multiple rules are set as default
- name: set_fact info_ceph_default_crush_rule_yaml, ceph_osd_pool_default_crush_rule_name
set_fact:
info_ceph_default_crush_rule_yaml: "{{ item.stdout | from_json() }}"
ceph_osd_pool_default_crush_rule_name: "{{ (item.stdout | from_json).rule_name }}"
info_ceph_default_crush_rule_yaml: "{{ item.stdout | default('{}', True) | from_json() }}"
ceph_osd_pool_default_crush_rule_name: "{{ (item.stdout | default('{}', True) | from_json).get('rule_name') }}"
with_items: "{{ info_ceph_default_crush_rule.results }}"
run_once: true
when: not item.get('skipped', false)
Expand Down

0 comments on commit 3ba0e4b

Please sign in to comment.