keycloak_clientscope_type: sort default and optional clientscope lists before diff (#9202)

* sort default and optional clientscope lists before diff

* add changelog fragment
pull/9223/head
fgruenbauer 2024-12-02 20:21:26 +01:00 committed by GitHub
parent a789bd128f
commit 55d714da81
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 1 deletions

View File

@ -0,0 +1,2 @@
bugfixes:
- keycloak_clientscope_type - sort the default and optional clientscope lists to improve the diff (https://github.com/ansible-collections/community.general/pull/9202).

View File

@ -190,6 +190,15 @@ def extract_field(dictionary, field='name'):
return [cs[field] for cs in dictionary]
def normalize_scopes(scopes):
scopes_copy = scopes.copy()
if isinstance(scopes_copy.get('default_clientscopes'), list):
scopes_copy['default_clientscopes'] = sorted(scopes_copy['default_clientscopes'])
if isinstance(scopes_copy.get('optional_clientscopes'), list):
scopes_copy['optional_clientscopes'] = sorted(scopes_copy['optional_clientscopes'])
return scopes_copy
def main():
"""
Module keycloak_clientscope_type
@ -244,7 +253,7 @@ def main():
})
if module._diff:
result['diff'] = dict(before=result['existing'], after=result['proposed'])
result['diff'] = dict(before=normalize_scopes(result['existing']), after=normalize_scopes(result['proposed']))
default_clientscopes_add = clientscopes_to_add(default_clientscopes_existing, default_clientscopes_real)
optional_clientscopes_add = clientscopes_to_add(optional_clientscopes_existing, optional_clientscopes_real)