)]}'
{"id":"openstack%2Fkeystone~961902","triplet_id":"openstack%2Fkeystone~stable%2F2024.2~I1a0ecd80a44eae6032e985091032aa91ee5c81a5","project":"openstack/keystone","branch":"stable/2024.2","topic":"use-secrets-library-in-oauth1-sql-backend","attention_set":{},"removed_from_attention_set":{"27900":{"account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"last_update":"2026-04-10 15:37:26.000000000","reason":"\u003cGERRIT_ACCOUNT_27900\u003e replied on the change","reason_account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}},"7973":{"account":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"last_update":"2026-04-10 15:36:21.000000000","reason":"\u003cGERRIT_ACCOUNT_7973\u003e replied on the change","reason_account":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"}},"7414":{"account":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"last_update":"2026-04-10 17:40:00.000000000","reason":"Change was submitted"},"35986":{"account":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"last_update":"2026-04-10 17:40:00.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I1a0ecd80a44eae6032e985091032aa91ee5c81a5","subject":"Replace the random library with secrets in oauth1","status":"MERGED","created":"2025-09-21 23:10:34.000000000","updated":"2026-04-10 17:41:18.000000000","submitted":"2026-04-10 17:40:00.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"961902-use-secrets-library-in-oauth1-sql-backend","meta_rev_id":"c0508e74312b64eb0c923b6bc735e7373b7972c2","_number":961902,"virtual_id_number":961902,"owner":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-10 17:39:59.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-04-10 15:37:26.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":1,"date":"2026-04-09 08:18:15.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":2,"date":"2026-04-10 15:36:21.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-04-10 15:37:26.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"}],"reviewers":{"REVIEWER":[{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-09-21 23:32:09.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2025-09-22 00:31:59.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-04-09 08:18:15.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"state":"REVIEWER"},{"updated":"2026-04-09 08:18:15.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"state":"REVIEWER"},{"updated":"2026-04-09 08:18:15.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"state":"REVIEWER"},{"updated":"2026-04-09 08:18:15.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"state":"REVIEWER"}],"messages":[{"id":"6de1825c69a2de9ed45050443aac4b9eeffc1921","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"date":"2025-09-21 23:10:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3416f15558a5c9a6559943140106e9b3fee10293","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-21 23:32:09.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/679998119a9846c2a5e682f8a3577cc6\n\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/98ce4909285a40a3988a13be8de3bb1a : SUCCESS in 16m 51s (non-voting)\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/8f199e2dc9b74b76938076593fa8808f : SUCCESS in 19m 59s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"88559989742705eb89ab2b5decc8cfeb5e7173e0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-22 00:31:59.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f08ff0da1f624bfebc48279af1138f44\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7558e6b23751489cb52b912af333b282 : SUCCESS in 11m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a73f896ed8c349d29286736fa5a4a057 : FAILURE in 5m 26s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/97445be124744a55a1afcd370c622042 : SUCCESS in 13m 33s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/861f7e44444243bc82c045d62056e7a9 : SUCCESS in 11m 53s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/02d0d53204e94930a281b4b734190924 : SUCCESS in 12m 18s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a8c60444341441f19a6988bfd3c2ea68 : SUCCESS in 11m 46s\n- grenade https://zuul.opendev.org/t/openstack/build/0c29f3927c6c42bf8cab633850d5ec7e : SUCCESS in 1h 02m 30s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/359008c6ad954c269ef3c45c640200a9 : SUCCESS in 1h 13m 15s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/12030a6eeb3c497bac852eb44016e6dc : SUCCESS in 25m 28s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/5dc89cd7a0cb4874aac565a80e70a3c0 : FAILURE in 23m 28s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/62fd8a54798140de80ddb7fefa2f43df : FAILURE in 15m 01s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/e1d12a8e45bc4dab89d5e7ec0baf68de : SUCCESS in 15m 55s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/9dff9957b7814afabc1113d2da7fa4d4 : SUCCESS in 10m 00s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/0487e13d47b94622a900c7429916f91d : FAILURE in 10m 24s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/debb6490a4874a7da09c1f02116cb846 : SUCCESS in 53m 06s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/520ad395e9cb406ebf13540d197f42a1 : FAILURE in 5m 49s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"1685569a75eb969ecc859fa0eaf41e1fc753983d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"real_author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-04-08 08:53:09.000000000","message":"Patch Set 2: Patch Set 1 was rebased on behalf of \u003cGERRIT_ACCOUNT_35986\u003e\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"}],"_revision_number":2},{"id":"4d3a72ea40aa941452d12dc5fd41e8abbc0f9bd4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 10:39:29.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/8f55e2b9e14845fcb1b9dbbb00e66dcc\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/dad726c73c614d20adac97da548eb642 : FAILURE in 4m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bde57c2e4a774a4392f2b388cd785d98 : SUCCESS in 5m 40s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/0b40ec954da44286a76c4037a6cd2ce9 : FAILURE in 6m 15s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6d546f3eae76437cbd2c50bb6c8aafe6 : FAILURE in 4m 35s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/ad1383e8cc0a474882e4772c48e5d3fe : FAILURE in 5m 48s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3ac97f6aa7454c97bc46d9f7659b5fa8 : FAILURE in 5m 30s\n- grenade https://zuul.opendev.org/t/openstack/build/1b9ad0d232fa4f9480dd600abe27d65c : SUCCESS in 1h 00m 38s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/a59fc83e0dfc4ce88dc93bff1312d160 : SUCCESS in 1h 40m 59s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/fb55cf00f39a4f6193759fae8b7609ce : SUCCESS in 17m 14s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/25673a456706487282624f066ad5d740 : FAILURE in 36m 57s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/f6a373b9b6d34332b902bf413871f40e : FAILURE in 15m 43s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/fd739f7a34c943e38c9d448a5a044f28 : POST_FAILURE in 26m 28s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/6b71503d8e3d45e98dfde9c6356d8141 : FAILURE in 16m 28s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/c33d8c91852d4834ab2cd3932777e233 : SUCCESS in 32m 00s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b94d4b70660045e681eaadf1534e55e9 : SUCCESS in 52m 11s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/49e1110defa14ca497c5f8a2fa3a8671 : RETRY_LIMIT in 3m 31s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"5ad9f62876a3bca8e7a284786e13716163defc0d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"real_author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-04-08 21:40:31.000000000","message":"Patch Set 3: Patch Set 2 was rebased on behalf of \u003cGERRIT_ACCOUNT_35986\u003e\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"}],"_revision_number":3},{"id":"10140d76afe2da73942a17509238879dea54b673","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 23:23:45.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/df0a12289b644293922a1d7eb2abf489\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/772a5a7620204751aca5722edc3552b2 : SUCCESS in 12m 37s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b1cb16e03cab4688b793a3b7db4da11e : SUCCESS in 7m 17s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/bc16ffa059784b578c3f6ac86d0d2ee2 : SUCCESS in 11m 29s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/87fe2336218f4e41843a5a3cd2e88632 : SUCCESS in 12m 22s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/8ce19efb95fe414a80b143bb3a0810d0 : SUCCESS in 12m 44s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2970dd585d0c46ac8b033f1312e81d1b : SUCCESS in 11m 55s\n- grenade https://zuul.opendev.org/t/openstack/build/460eee8369c248ffb6aa731d28e8943e : SUCCESS in 42m 04s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/59dca4f1cbba41bcad76fada6947165a : SUCCESS in 1h 37m 29s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/73a56419c7e8491e907fbadb43d19951 : SUCCESS in 29m 53s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/c572d1b0a79a4def9a9d0a5f53940b23 : FAILURE in 38m 23s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/00ce44d28b474a2080903cd4a7c69de8 : FAILURE in 24m 17s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/7124a6575d06405a80e96d7ae7b5cc50 : SUCCESS in 26m 17s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/4cf8f9520b30467d9617d72367aa90e5 : FAILURE in 14m 28s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/712ff23a923545fa896bd01afd67ffe3 : SUCCESS in 31m 52s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9f804dd026ad4a0b8200791ce006df4c : SUCCESS in 58m 13s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/b297c14bd7bc4df58e41766c02c2f9b6 : FAILURE in 5m 59s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"ba1cc9ea360ecd204b446e903cb8a804340c5298","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-04-09 08:18:15.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"d5f877df57289eba579e9f012a3df809e6196db3","author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"date":"2026-04-10 15:36:21.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"6dc3b1965374708fee4e10cd569438bf7df0e92f","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-04-10 15:37:26.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"77a519cf0832f1c36775c30252f27a318dc7d817","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 15:38:06.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"be5923d234a11b836bba68d31f6bc68bb27bcc72","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 17:39:59.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3941d17cf1bf464f81072e88e41f4d60\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6ba8f7ac74ff40718ff4df8d1055aa60 : SUCCESS in 5m 07s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/054dfddd18b8475996d9ffc7aff36a60 : SUCCESS in 9m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/02654261aaff4af3b0838da781d7c5a5 : SUCCESS in 8m 10s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4f1be02f969a4e21861eacc9bca13535 : SUCCESS in 7m 43s\n- grenade https://zuul.opendev.org/t/openstack/build/58eef5e3c3aa4327a0d405d89565db50 : SUCCESS in 29m 24s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/09a1434279db4800ac73544e27c5a419 : SUCCESS in 1h 25m 02s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/01b02cd483194da19d3743bacf9f8f02 : SUCCESS in 13m 13s\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/c515cabb9e2244fba7ac1f9e3f60072e : SUCCESS in 15m 51s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/1e35c1281a8148c1891caf5934762b73 : SUCCESS in 42m 47s","accounts_in_message":[],"_revision_number":3},{"id":"412df8adb1d9335ad28420134cbdc4d552dbb053","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 17:40:00.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"c0508e74312b64eb0c923b6bc735e7373b7972c2","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 17:41:18.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/07075562d97b480cb246dc83085262c1\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0836777fb3b04620ba78c98ddd9462a2 : SUCCESS in 1m 01s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"16a9a838fd8f211e918a4b9e7a0c28c053805dde","revisions":{"5a4c2582ba278954fd61586830b3be6cc349c194":{"kind":"REWORK","_number":1,"created":"2025-09-21 23:10:34.000000000","uploader":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"ref":"refs/changes/02/961902/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/02/961902/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/02/961902/1"}}},"commit":{"parents":[{"commit":"47891f4ae8fd7876e5a7657f58c32c371feeddc3","subject":"Update mod_openidc config for devstack","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/47891f4ae8fd7876e5a7657f58c32c371feeddc3"}]}],"author":{"name":"Adrian Jarvis","email":"adrian.jarvis@catalystcloud.nz","date":"2025-09-18 04:39:16.000000000","tz":720},"committer":{"name":"Adrian Jarvis","email":"adrian.jarvis@catalystcloud.nz","date":"2025-09-21 23:10:03.000000000","tz":720},"subject":"Replace the random library with secrets in oauth1","message":"Replace the random library with secrets in oauth1\n\nThe module keystone.oauth1.backends.sql was using the random library to\ngenerate the verifier of a request token.  The bandit security scanner\ntool from version 1.8.4 onwards identifies the use random.sample as a\nlow security issue, despite random actually being an alias to\nrandom.SystemRandom(). This change replaces the use of random library\nwith the secrets library and avoids the use of shadowing random.\n\nChange-Id: I1a0ecd80a44eae6032e985091032aa91ee5c81a5\nSigned-off-by: Adrian Jarvis \u003cadrian.jarvis@catalystcloud.nz\u003e\n(cherry picked from commit 420503a3731fec618e4e8a83415e8ec416ca35da)\n(cherry picked from commit 0ade43a83c8c44034fbf962dd566670bb1f86fdb)\n(cherry picked from commit f1e80dd69c631cc8e1d4cc5412e103833ed92137)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/5a4c2582ba278954fd61586830b3be6cc349c194"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/5a4c2582ba278954fd61586830b3be6cc349c194"}]},"branch":"refs/heads/stable/2024.2"},"05c3a5abbbede4c3a1901543f2733ab46469329b":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-04-08 08:53:09.000000000","uploader":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"real_uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/02/961902/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/02/961902/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/02/961902/2"}}},"commit":{"parents":[{"commit":"489e170f8161dac7c8388a9bd5864078a1338cc9","subject":"Invalidate token of user disabled in readonly backend","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/489e170f8161dac7c8388a9bd5864078a1338cc9"}]}],"author":{"name":"Adrian Jarvis","email":"adrian.jarvis@catalystcloud.nz","date":"2025-09-18 04:39:16.000000000","tz":720},"committer":{"name":"Adrian Jarvis","email":"adrian.jarvis@catalystcloud.nz","date":"2026-04-08 08:53:09.000000000","tz":0},"subject":"Replace the random library with secrets in oauth1","message":"Replace the random library with secrets in oauth1\n\nThe module keystone.oauth1.backends.sql was using the random library to\ngenerate the verifier of a request token.  The bandit security scanner\ntool from version 1.8.4 onwards identifies the use random.sample as a\nlow security issue, despite random actually being an alias to\nrandom.SystemRandom(). This change replaces the use of random library\nwith the secrets library and avoids the use of shadowing random.\n\nChange-Id: I1a0ecd80a44eae6032e985091032aa91ee5c81a5\nSigned-off-by: Adrian Jarvis \u003cadrian.jarvis@catalystcloud.nz\u003e\n(cherry picked from commit 420503a3731fec618e4e8a83415e8ec416ca35da)\n(cherry picked from commit 0ade43a83c8c44034fbf962dd566670bb1f86fdb)\n(cherry picked from commit f1e80dd69c631cc8e1d4cc5412e103833ed92137)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/05c3a5abbbede4c3a1901543f2733ab46469329b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/05c3a5abbbede4c3a1901543f2733ab46469329b"}]},"branch":"refs/heads/stable/2024.2","description":"Rebase"},"16a9a838fd8f211e918a4b9e7a0c28c053805dde":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-04-08 21:40:31.000000000","uploader":{"_account_id":35986,"name":"Adrian Jarvis","email":"adrian.r.jarvis@gmail.com","username":"adrian_jarvis"},"real_uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/02/961902/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/02/961902/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/02/961902/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/02/961902/3"}}},"commit":{"parents":[{"commit":"e13e4667e3d2eea8e9d7b3e6c63ebb99c6a96213","subject":"Prevent unauthorized EC2 credential creation and deletion","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/e13e4667e3d2eea8e9d7b3e6c63ebb99c6a96213"}]}],"author":{"name":"Adrian Jarvis","email":"adrian.jarvis@catalystcloud.nz","date":"2025-09-18 04:39:16.000000000","tz":720},"committer":{"name":"Adrian Jarvis","email":"adrian.jarvis@catalystcloud.nz","date":"2026-04-08 21:40:31.000000000","tz":0},"subject":"Replace the random library with secrets in oauth1","message":"Replace the random library with secrets in oauth1\n\nThe module keystone.oauth1.backends.sql was using the random library to\ngenerate the verifier of a request token.  The bandit security scanner\ntool from version 1.8.4 onwards identifies the use random.sample as a\nlow security issue, despite random actually being an alias to\nrandom.SystemRandom(). This change replaces the use of random library\nwith the secrets library and avoids the use of shadowing random.\n\nChange-Id: I1a0ecd80a44eae6032e985091032aa91ee5c81a5\nSigned-off-by: Adrian Jarvis \u003cadrian.jarvis@catalystcloud.nz\u003e\n(cherry picked from commit 420503a3731fec618e4e8a83415e8ec416ca35da)\n(cherry picked from commit 0ade43a83c8c44034fbf962dd566670bb1f86fdb)\n(cherry picked from commit f1e80dd69c631cc8e1d4cc5412e103833ed92137)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/16a9a838fd8f211e918a4b9e7a0c28c053805dde"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/16a9a838fd8f211e918a4b9e7a0c28c053805dde"}]},"branch":"refs/heads/stable/2024.2","description":"Rebase"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
