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]>
  • Loading branch information
asm0deuz committed May 29, 2024
1 parent f6fd034 commit 40c0624
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 40c0624

Please sign in to comment.