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 <[email protected]>
(cherry picked from commit aefda37)
  • Loading branch information
asm0deuz authored and mergify[bot] committed May 29, 2024
1 parent 555a2bc commit 65af42a
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 65af42a

Please sign in to comment.