Skip to content

Commit

Permalink
ceph_orch_apply: fix idempotency
Browse files Browse the repository at this point in the history
As is idempotency does not work as the ceph orch
output does contain more attributes than the expected spec.

Signed-off-by: Teoman ONAY <tonay@ibm.com>
(cherry picked from commit aefda37)
  • Loading branch information
asm0deuz authored and mergify[bot] committed May 29, 2024
1 parent b2998ed commit aded6af
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion library/ceph_orch_apply.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,21 @@ def apply_spec(module: "AnsibleModule",
return rc, cmd, out, err


def change_required(current: Dict, expected: Dict) -> bool:
""" checks if the current config differs from what is expected """
if not current:
return True

for key, value in expected.items():
if key in current:
if current[key] != value:
return True
continue
else:
return True
return False


def run_module() -> None:

module_args = dict(
Expand Down Expand Up @@ -137,7 +152,7 @@ def run_module() -> None:
expected = parse_spec(module.params.get('spec'))
current_spec = retrieve_current_spec(module, expected)

if not current_spec or current_spec != expected:
if change_required(current_spec, expected):
rc, cmd, out, err = apply_spec(module, spec)
changed = True
else:
Expand Down

0 comments on commit aded6af

Please sign in to comment.