mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[PR #8224/9d66a1dc backport][stable-8] keycloak_realm: add normalizations for enabledEventTypes, and supportedLocales (#8256)
keycloak_realm: add normalizations for enabledEventTypes, and supportedLocales (#8224)
keycloak_realm: add nomalizations for enabledEventTypes, and supportedLocales
Signed-off-by: Eike Waldt <waldt@b1-systems.de>
(cherry picked from commit 9d66a1dc1e
)
Co-authored-by: Eike Waldt <waldt@b1-systems.de>
This commit is contained in:
parent
dd74e29558
commit
a64098cd76
2 changed files with 28 additions and 3 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- keycloak_realm - add normalizations for ``enabledEventTypes`` and ``supportedLocales`` (https://github.com/ansible-collections/community.general/pull/8224).
|
|
@ -582,6 +582,27 @@ from ansible_collections.community.general.plugins.module_utils.identity.keycloa
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
|
|
||||||
|
def normalise_cr(realmrep):
|
||||||
|
""" Re-sorts any properties where the order is important so that diff's is minimised and the change detection is more effective.
|
||||||
|
|
||||||
|
:param realmrep: the realmrep dict to be sanitized
|
||||||
|
:return: normalised realmrep dict
|
||||||
|
"""
|
||||||
|
# Avoid the dict passed in to be modified
|
||||||
|
realmrep = realmrep.copy()
|
||||||
|
|
||||||
|
if 'enabledEventTypes' in realmrep:
|
||||||
|
realmrep['enabledEventTypes'] = list(sorted(realmrep['enabledEventTypes']))
|
||||||
|
|
||||||
|
if 'otpSupportedApplications' in realmrep:
|
||||||
|
realmrep['otpSupportedApplications'] = list(sorted(realmrep['otpSupportedApplications']))
|
||||||
|
|
||||||
|
if 'supportedLocales' in realmrep:
|
||||||
|
realmrep['supportedLocales'] = list(sorted(realmrep['supportedLocales']))
|
||||||
|
|
||||||
|
return realmrep
|
||||||
|
|
||||||
|
|
||||||
def sanitize_cr(realmrep):
|
def sanitize_cr(realmrep):
|
||||||
""" Removes probably sensitive details from a realm representation.
|
""" Removes probably sensitive details from a realm representation.
|
||||||
|
|
||||||
|
@ -595,7 +616,7 @@ def sanitize_cr(realmrep):
|
||||||
if 'saml.signing.private.key' in result['attributes']:
|
if 'saml.signing.private.key' in result['attributes']:
|
||||||
result['attributes'] = result['attributes'].copy()
|
result['attributes'] = result['attributes'].copy()
|
||||||
result['attributes']['saml.signing.private.key'] = '********'
|
result['attributes']['saml.signing.private.key'] = '********'
|
||||||
return result
|
return normalise_cr(result)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -777,9 +798,11 @@ def main():
|
||||||
result['changed'] = True
|
result['changed'] = True
|
||||||
if module.check_mode:
|
if module.check_mode:
|
||||||
# We can only compare the current realm with the proposed updates we have
|
# We can only compare the current realm with the proposed updates we have
|
||||||
|
before_norm = normalise_cr(before_realm)
|
||||||
|
desired_norm = normalise_cr(desired_realm)
|
||||||
if module._diff:
|
if module._diff:
|
||||||
result['diff'] = dict(before=before_realm_sanitized,
|
result['diff'] = dict(before=sanitize_cr(before_norm),
|
||||||
after=sanitize_cr(desired_realm))
|
after=sanitize_cr(desired_norm))
|
||||||
result['changed'] = (before_realm != desired_realm)
|
result['changed'] = (before_realm != desired_realm)
|
||||||
|
|
||||||
module.exit_json(**result)
|
module.exit_json(**result)
|
||||||
|
|
Loading…
Reference in a new issue