From df496e37c0d5d5f5750c0bf570a6e2fc8c283a25 Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Sat, 1 Feb 2025 22:46:14 +0100 Subject: [PATCH] [PR #9644/250dc113 backport][stable-10] Fb keycloak client improvement (#9671) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fb keycloak client improvement (#9644) * Fix for failed test TASK [keycloak_client : Assert changes not detected in last two tasks (desire when same, and check)] *** task path: /root/ansible_collections/community/general/tests/output/.tmp/integration/keycloak_client-p3ttqf7d-ÅÑŚÌβŁÈ/tests/integration/targets/keycloak_client/tasks/main.yml:79 fatal: [testhost]: FAILED! => { "assertion": "check_client_when_present_and_same is not changed", "changed": false, "evaluated_to": false, "msg": "Assertion failed" } * Improved test data to test more scenarios, e.g documentation uses True in examples * Normalize values in config * add changelog * Apply suggestions from code review Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> * Update tests/integration/targets/keycloak_client/vars/main.yml Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> * Update changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> --------- Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> (cherry picked from commit 250dc1139c53ab429196fe64d8f3676e75977c61) Co-authored-by: amPrimeSign <146177975+amPrimeSign@users.noreply.github.com> --- .../9644-kc_client-test-improvement-and-fix.yaml | 2 ++ plugins/modules/keycloak_client.py | 10 ++++++++++ .../targets/keycloak_client/vars/main.yml | 12 ++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml diff --git a/changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml b/changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml new file mode 100644 index 00000000000..63cba991985 --- /dev/null +++ b/changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml @@ -0,0 +1,2 @@ +bugfixes: + - keycloak_client - fix and improve existing tests. The module showed a diff without actual changes, solved by improving the ``normalise_cr()`` function (https://github.com/ansible-collections/community.general/pull/9644). diff --git a/plugins/modules/keycloak_client.py b/plugins/modules/keycloak_client.py index bb51a6a9b3b..f02a0bfb9e1 100644 --- a/plugins/modules/keycloak_client.py +++ b/plugins/modules/keycloak_client.py @@ -758,9 +758,19 @@ def normalise_cr(clientrep, remove_ids=False): if remove_ids: mapper.pop('id', None) + # Convert bool to string + if 'config' in mapper: + for key, value in mapper['config'].items(): + if isinstance(value, bool): + mapper['config'][key] = str(value).lower() + # Set to a default value. mapper['consentRequired'] = mapper.get('consentRequired', False) + if 'attributes' in clientrep: + for key, value in clientrep['attributes'].items(): + if isinstance(value, bool): + clientrep['attributes'][key] = str(value).lower() return clientrep diff --git a/tests/integration/targets/keycloak_client/vars/main.yml b/tests/integration/targets/keycloak_client/vars/main.yml index 498f93e709d..93f0d4d73e7 100644 --- a/tests/integration/targets/keycloak_client/vars/main.yml +++ b/tests/integration/targets/keycloak_client/vars/main.yml @@ -34,9 +34,9 @@ protocol_mappers1: "claim.name": "email" "user.attribute": "email" "jsonType.label": "String" - "id.token.claim": "true" - "access.token.claim": "true" - "userinfo.token.claim": "true" + "id.token.claim": true + "access.token.claim": true + "userinfo.token.claim": true - name: 'email_verified' protocol: 'openid-connect' @@ -45,9 +45,9 @@ protocol_mappers1: "claim.name": "email_verified" "user.attribute": "emailVerified" "jsonType.label": "boolean" - "id.token.claim": "true" - "access.token.claim": "true" - "userinfo.token.claim": "true" + "id.token.claim": true + "access.token.claim": true + "userinfo.token.claim": true - name: 'family_name' protocol: 'openid-connect'