1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-04-05 11:46:57 +00:00

fix: idempotence boolean compare

This commit is contained in:
Guillaume Dorschner 2025-12-19 11:52:39 +01:00
parent 3d25aac978
commit fedba4655b
2 changed files with 22 additions and 0 deletions

View file

@ -298,6 +298,21 @@ from ansible_collections.community.general.plugins.module_utils.identity.keycloa
)
from ansible.module_utils.basic import AnsibleModule
def normalise_boolean(obj):
"""
Recursive fonction to traverse the obj and unify the boolean values.
"""
if isinstance(obj, dict):
return {k: normalise_boolean(v) for k, v in obj.items()}
elif isinstance(obj, list):
return [normalise_boolean(v) for v in obj]
elif isinstance(obj, str):
if obj.lower() == "true":
return True
elif obj.lower() == "false":
return False
return obj
def normalise_cr(clientscoperep, remove_ids=False):
"""Re-sorts any properties where the order so that diff's is minimised, and adds default values where appropriate so that the
@ -319,6 +334,9 @@ def normalise_cr(clientscoperep, remove_ids=False):
if remove_ids:
mapper.pop("id", None)
for key, value in mapper.items():
mapper[key] = normalise_boolean(value)
# Set to a default value.
mapper["consentRequired"] = mapper.get("consentRequired", False)