community.general/plugins/module_utils
patchback[bot] da040cb412
[PR #9494/af011827 backport][stable-10] Keycloak modules retry request on authentication error, support refresh token parameter (#9631)
Keycloak modules retry request on authentication error, support refresh token parameter (#9494)

* feat: begin refactor to support refresh token in keycloak modules

* chore: add start of tests for shared token usage

* feat: progress towards supporting refresh token; token introspection not yet working [8857]

* chore: reset to main branch previous state; a different approach is needed [8857]

* feat: add request methods to keycloak class, which will be expanded with retry logic [8857]

* feat: all requests to keycloak use request methods instead of open_url [8857]

* fix: data argument is optional in keycloak request methods [8857]

* feat: add integration test for keycloak module authentication methods [8857]

* chore: refactor get token logic to separate logic using username/pass credentials [8857]

* chore: refactor token request logic further to isolate request logic [8857]

* chore: fix minor lint issues [8857]

* test: add (currently failing) test for request with invalid auth token, valid refresh token [8857]

* chore: allow realm to be provided to role module with refresh_token, without username/pass [8857]

* feat: add retry logic to requests in keycloak module utils [8857]

* chore: rename keycloak module fail_open_url method to fail_request [8857]

* chore: update all keycloak modules to support refresh token param [8857]

* chore: add refresh_token param to keycloak doc_fragments [8857]

* chore: restore dependency between auth_realm and auth_username,auth_password params [8857]

* chore: rearrange module param checks to reduce future pr size [8857]

* chore: remove extra comma [8857]

* chore: update version added for refresh token param [8857]

* chore: add changelog fragment [8857]

* chore: re-add fail_open_url to keycloak module utils for backward compatability [8857]

* fix: do not make a new request to keycloak without reauth when refresh token not provided (#8857)

* fix: only make final auth attempt if username/pass provided, and return exception on failure (#8857)

* fix: make re-auth and retry code more consistent, ensure final exceptions are thrown (#8857)

* test: fix arguments for invalid token, valid refresh token test (#8857)

* feat: catch invalid refresh token errors during re-auth attempt (#8857)

Add test to verify this behaviour works.

* test: improve test coverage, including some unhappy path tests for authentication failures (#8857)

* chore: store auth errors from token request in backwards compatible way (#8857)

* fix: ensure method is still specified for all requests (#8857)

* chore: simplify token request logic (#8857)

* chore: rename functions to request tokens using refresh token or username/password (#8857)

To emphasize their difference from the `get_token` function,
which either gets the token from the module params
*or* makes a request for it.

* doc: add docstrings for new or significantly modified functions (#8857)

* test: repair unit test following change to exception message upon key error during auth request (#8857)

(cherry picked from commit af0118278b)

Co-authored-by: Mark Armstrong <markparmstrong@gmail.com>
2025-01-26 15:43:41 +01:00
..
identity/keycloak [PR #9494/af011827 backport][stable-10] Keycloak modules retry request on authentication error, support refresh token parameter (#9631) 2025-01-26 15:43:41 +01:00
mh [PR #9577/7fa859a3 backport][stable-10] module helper: delegate debug() to AnsibleModule (#9591) 2025-01-20 20:03:59 +01:00
net_tools/pritunl Fix more typos (#7439) 2023-10-29 18:04:44 +01:00
oracle Use isinstance() instead of type() (#7501) 2023-11-08 13:20:19 +01:00
remote_management/lxca Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
source_control Remove deprecated features, bump version to 6.0.0 (#5326) 2022-10-25 08:07:21 +02:00
storage Fix copyright lines (make sure 'Copyright' is there). (#5083) 2022-08-05 22:12:10 +02:00
_filelock.py [PR #9442/ec585392 backport][stable-10] Docs: fix its vs. it's (#9458) 2024-12-29 14:13:18 +01:00
_mount.py Add remaining copyright statements, add licenses sanity test (#5098) 2022-08-08 23:23:08 +02:00
_stormssh.py Removes dependency on StormSSH (#6117) 2023-03-12 12:39:42 +01:00
alicloud_ecs.py multiple modules: removed unused imports (#5240) 2022-09-09 22:23:48 +02:00
android_sdkmanager.py [PR #9236/2b2872f0 backport][stable-10] Add android sdk module (#9293) 2024-12-20 23:27:05 +01:00
btrfs.py New modules btrfs_subvolume / btrfs_info (#5832) 2023-04-20 06:35:29 +02:00
cloud.py Fix copyright lines (make sure 'Copyright' is there). (#5083) 2022-08-05 22:12:10 +02:00
cmd_runner.py cmd_runner_fmt: refactor out to its own file (#8964) 2024-10-02 21:24:24 +03:00
cmd_runner_fmt.py cmd_runner_fmt: refactor out to its own file (#8964) 2024-10-02 21:24:24 +03:00
consul.py Consul implement agent service and check (#7989) 2024-06-16 09:32:55 +02:00
csv.py Use dict comprehension in plugins (#8814) 2024-09-01 20:22:53 +02:00
database.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
datetime.py Avoid deprecated utcnow() (#8222) 2024-04-20 09:26:08 +02:00
deps.py [PR #9179/a3bd49c0 backport][stable-10] deps module utils: unit tests + minor improvement (#9182) 2024-11-25 19:49:12 +01:00
dimensiondata.py Fix more typos (#7439) 2023-10-29 18:04:44 +01:00
django.py django_command/django_check/django_createcachetable: add return value version (#9063) 2024-10-27 09:36:38 +01:00
gandi_livedns_api.py feat(gandi_livedns): support personal access tokens (#8337) 2024-05-18 15:42:11 +02:00
gconftool2.py gconftool2/gconftool2_info: add return value version (#9064) 2024-10-27 09:36:52 +01:00
gio_mime.py [PR #9171/152339a8 backport][stable-10] gio_mime: fix bug when looking for version (#9177) 2024-11-23 15:18:34 +01:00
gitlab.py feat(gitlab modules): remove basic auth (#8405) 2024-06-01 22:45:51 +02:00
heroku.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
homebrew.py homebrew: Add support for services functions (#8329) 2024-08-01 17:11:23 +02:00
hwc_utils.py Fix more typos (#7439) 2023-10-29 18:04:44 +01:00
ibm_sa_utils.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
ilo_redfish_utils.py Fix pylint and pep8 issues exposed by latest ansible-core's ansible-test sanity checks (#8720) 2024-08-07 15:18:58 +02:00
influxdb.py Remove unneccessary imports (#5940) 2023-02-12 19:48:39 +01:00
ipa.py module_utils/ipa.py: fix regex when parsing version (#8175) 2024-04-09 07:40:10 +02:00
jenkins.py jenkins_plugin: fix sanity checks (#5565) 2022-11-17 06:55:46 +01:00
known_hosts.py [PR #9579/0de39a6f backport][stable-10] use open() as context manager (#9596) 2025-01-21 21:04:28 +01:00
ldap.py Simplify regex for identifying order number in DN (#7646) (#7697) 2024-01-29 19:08:34 +01:00
linode.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
locale_gen.py locale_gen: refactor module to use CmdRunner (#6820) 2023-07-06 21:05:34 +02:00
lxd.py plugins/inventory/lxd: add server_cert option (#7392) 2023-10-25 08:47:48 +02:00
manageiq.py manageiq_tags_info: new module (#5368) 2022-10-23 11:33:07 +02:00
memset.py Fix more typos (#7439) 2023-10-29 18:04:44 +01:00
module_helper.py MH: deprecate features (#8280) 2024-04-29 17:27:06 +02:00
ocapi_utils.py use dict comprehension in plugins, part 3 (#8833) 2024-09-08 14:22:37 +02:00
oneandone.py Fix more copyright lines, add more default copyright lines (#5095) 2022-08-08 14:24:58 +02:00
onepassword.py Fix more copyright lines, add more default copyright lines (#5095) 2022-08-08 14:24:58 +02:00
oneview.py Remove unneccessary imports (#5940) 2023-02-12 19:48:39 +01:00
online.py Fix more copyright lines, add more default copyright lines (#5095) 2022-08-08 14:24:58 +02:00
opennebula.py one_image/one_image_info: refactor (#8889) 2024-10-05 15:02:01 +02:00
pipx.py [PR #9180/a9449ccc backport][stable-10] pipx/pipx_info: add return value version (#9183) 2024-11-25 19:49:25 +01:00
proxmox.py [PR #9601/b9299e63 backport][stable-10] proxmox_template: Add optional checksum validation (#9624) 2025-01-25 10:32:43 +01:00
puppet.py 8281: puppet waitforlock (#8282) 2024-05-04 15:26:56 +02:00
pure.py Remove unneccessary imports (#5940) 2023-02-12 19:48:39 +01:00
python_runner.py python_runner/django_command: bugfixes (#8944) 2024-09-30 09:45:32 +03:00
redfish_utils.py [PR #9403/e853bdf6 backport][stable-10] Redfish: implement obtaining AccountService config (#9511) 2025-01-02 16:37:15 +01:00
redis.py Add TLS certs params to redis (#8654) 2024-07-23 18:01:37 +02:00
rundeck.py Added parameter to select Content-Type when accessing the Rundeck API (#7684) 2024-05-12 09:21:39 +02:00
saslprep.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
scaleway.py use dict comprehension in plugins, part 3 (#8833) 2024-09-08 14:22:37 +02:00
snap.py [PR #9598/f27d5e7a backport][stable-10] snap: add RV version (#9606) 2025-01-22 20:51:27 +01:00
ssh.py ssh_config: fixed sanity (#5720) 2022-12-22 21:34:21 +01:00
univention_umc.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
utm_utils.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
vardict.py Use dict comprehension in plugins (#8814) 2024-09-01 20:22:53 +02:00
version.py Drop support for ansible-core 2.11 and 2.12 (#7269) 2023-10-11 16:13:14 +02:00
vexata.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
wdc_redfish_utils.py Fix to handle Redfish Gen2 Firmware upgrade (#8444) 2024-07-08 09:45:09 +02:00
xenserver.py Move licenses to LICENSES/, run add-license.py, add LICENSES/MIT.txt (#5065) 2022-08-05 12:28:29 +02:00
xfconf.py [PR #9226/b429e8a2 backport][stable-10] xfconf/xfconf_info: add return value version (#9359) 2024-12-24 14:05:31 +01:00