)]}'
{"id":"openstack%2Fkeystoneauth~1000759","triplet_id":"openstack%2Fkeystoneauth~master~I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4","project":"openstack/keystoneauth","branch":"master","attention_set":{"10273":{"account":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"last_update":"2026-08-20 19:35:50.000000000","reason":"\u003cGERRIT_ACCOUNT_5890\u003e replied on the change","reason_account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}},"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-08-18 16:07:53.000000000","reason":"\u003cGERRIT_ACCOUNT_5890\u003e mentioned you in a comment","reason_account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}}},"removed_from_attention_set":{"5890":{"account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"last_update":"2026-08-20 19:35:50.000000000","reason":"\u003cGERRIT_ACCOUNT_5890\u003e replied on the change","reason_account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}}},"hashtags":[],"change_id":"I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4","subject":"Add a v3websso authentication plugin","status":"NEW","created":"2026-08-12 17:48:44.000000000","updated":"2026-08-20 20:44:26.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":52,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"d99ad00d286e328ed07a649d086e3d98f5491102","_number":1000759,"virtual_id_number":1000759,"owner":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-08-20 20:44:26.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-12 17:56:36.000000000","updated_by":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2026-08-12 18:42:35.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-08-12 22:01:22.000000000","updated_by":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"reviewer":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"state":"CC"}],"messages":[{"id":"6a8e92cf030e734fc71da752d883638c1edba74e","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-12 17:48:44.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c61077000012348c80982a042949977135385f1f","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-12 17:56:36.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"e20322a5437c203448a157433bc26cec23eb7d25","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-12 18:42:35.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/5ad280fbf7824855880af5db5fb8b8dd\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/938026eb9c18488698401f85489fab7f : SUCCESS in 2m 38s\n- requirements-check https://zuul.opendev.org/t/openstack/build/b617eb6b3675447bab3bbf6e84bfa776 : SUCCESS in 1m 32s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/741df9f03e854f209c053453fbaa0001 : SUCCESS in 52m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9d5187631b87490695913a23fd3e5e13 : SUCCESS in 8m 17s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/553b9906456143a49e2e00830bfa2253 : SUCCESS in 7m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e700d689cce04bf0b216cad4e35e4ed8 : SUCCESS in 5m 23s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c7eeebabab704fe5bc261c72a3bdd472 : SUCCESS in 9m 16s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/a3241a0497f04d69848d2d9ae1374f6c : SUCCESS in 15m 12s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/e6840ee56f134665ad767ae023804f4e : POST_FAILURE in 8m 40s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/8e2257e20a8943e99209e8739aef1d47 : SUCCESS in 4m 29s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/547745799aa7421b94fea25eb885f6be : SUCCESS in 4m 58s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/70e90e09c7c84803aa7f2ac43cd26714 : SUCCESS in 8m 27s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/836157881f2c44d2a1b824fa9f64221a : SUCCESS in 4m 44s","accounts_in_message":[],"_revision_number":1},{"id":"f6491094e0bbb60d02e5b3581fc6ed6353ea660d","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-08-12 22:01:22.000000000","message":"Patch Set 1:\n\n(5 comments)\n\nThis change is ready for review.","accounts_in_message":[],"_revision_number":1},{"id":"3f7b083b5dc8c69168ba829fef9019b56b9cc0b4","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-12 22:42:37.000000000","message":"Patch Set 1:\n\n(4 comments)","accounts_in_message":[],"_revision_number":1},{"id":"7f87b0f875234d5baf031c11f81232fb30c92064","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-12 22:42:43.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"eb3008a1a01549aabd070dd56dff5479365c7f95","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-08-12 23:15:00.000000000","message":"Patch Set 1:\n\n(2 comments)\n\nThis change is ready for review.","accounts_in_message":[],"_revision_number":1},{"id":"ce9585dedc5fb435566399f47c95ac84c3f12e51","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-13 22:45:45.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"6c9be18bd097394af647737b8ec13f00a22238e4","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-13 22:45:52.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"a8de97ffc2d308cab6157cb4466e0412f0fe034c","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-13 22:46:40.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"9ad7613e454b47409d452d16b6b321fcd2d3b90e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 00:21:52.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/447b4c2052f84380b127d86745d6be47\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/8ec44d83e591432ea3cb70c7bff87565 : SUCCESS in 1m 59s\n- requirements-check https://zuul.opendev.org/t/openstack/build/dc5ad1cba29541d887292504aa858c6f : SUCCESS in 3m 11s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/430c4d864781404d948eee621a29d405 : SUCCESS in 1h 29m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7a36cf415a6e42388996818a88c2fba3 : SUCCESS in 3m 49s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/a9edd1e88088421596324e44f8e0bd96 : SUCCESS in 5m 05s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/122e9d5ea39d4a548bfa34cf40b84529 : SUCCESS in 6m 44s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a570efb4f90849f2a2f041bf8ebac3fd : SUCCESS in 10m 02s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/ae0a350e915b4687b4632ea3eed331c2 : SUCCESS in 8m 13s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/7da70c57c3ef46f097cbcdc6ede7a486 : SUCCESS in 27m 26s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/181a5f7c12fb459bb2c2b843517f8ccd : SUCCESS in 4m 37s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/fd89d79ef20e4064a19da5f324dc8f5b : SUCCESS in 7m 07s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/76577f229bff436c8cbebf7047d70928 : SUCCESS in 8m 14s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0eb66612093344cebd216cc8d02e34e1 : SUCCESS in 2m 38s","accounts_in_message":[],"_revision_number":2},{"id":"4e04fe72c36b5271d6e257702a30ae998ddc2726","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-17 16:34:18.000000000","message":"Patch Set 2: Code-Review-1\n\n(14 comments)","accounts_in_message":[],"_revision_number":2},{"id":"51176f152e2383c143239a1c4b17965dd714db2e","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 15:48:02.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"f69011b0ec1bffef88739c524c099159e521403c","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 16:07:53.000000000","message":"Patch Set 3:\n\n(8 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a3cb27f676a172d01dff6f7712a748f45ceaca9b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-18 16:58:58.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8bf06c0ce5244013b1a96e3692700c5f\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/52bbce3b93ad49b58e2cbffcd107c0a2 : SUCCESS in 2m 58s\n- requirements-check https://zuul.opendev.org/t/openstack/build/6bf992838be54f4aa84da5cb4c4be61c : SUCCESS in 2m 08s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/192764a550b04c478750e872a29786bf : SUCCESS in 44m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3f91b34c98a94c9cbdb4daac36ac02da : SUCCESS in 10m 36s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b4b8161f158c48169cb763efa9a52efc : SUCCESS in 8m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8d458d70f30346ccb86b8c4c81286361 : SUCCESS in 5m 59s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1807332875304653a2f63f807b3d0d56 : SUCCESS in 12m 08s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/537c189a82fc4885a946281118b7c7a7 : SUCCESS in 13m 50s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/5107fbe2c7c5404c8def7e740136d832 : SUCCESS in 1h 04m 23s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/d09021d47a494f14aca67318a4a33517 : SUCCESS in 2m 28s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/e244d471b92f43508e27667db3376134 : SUCCESS in 7m 27s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6032a89fcb9b477cbec5b0837092a9b0 : SUCCESS in 8m 08s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/dfb2f447925c4e59a40620200dd6603d : SUCCESS in 4m 29s","accounts_in_message":[],"_revision_number":3},{"id":"2ff8e2f7618ec9d7878951c812dc307f1c931d61","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 20:35:25.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"cba4aa4c0271be2c305435348b468f3838fbbcee","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 20:36:44.000000000","message":"Patch Set 4:\n\n(9 comments)\n\nThis change is ready for review.","accounts_in_message":[],"_revision_number":4},{"id":"2ef6f746d8eb989ebd3dc83d4f577ac6a3ac646a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-18 22:28:04.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/81c997609eda4ef48b6255667962d535\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/602cf7008b2f432e928d1f58dab97a2f : SUCCESS in 2m 30s\n- requirements-check https://zuul.opendev.org/t/openstack/build/744544320842427d9e2ea70e1324a9cd : SUCCESS in 3m 14s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/7810ff7a7d62414793ce80b073e101c9 : SUCCESS in 1h 45m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/533271743ba94517bf551ec38ca61f88 : SUCCESS in 8m 48s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ee796509c0e5438fa989166a543ad65b : SUCCESS in 4m 23s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/84f23ba6727f4a50a410d249b379451f : SUCCESS in 7m 12s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d2fb4fe00e7945efab74f25626a5e9d8 : SUCCESS in 5m 42s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/51e684e6cbb64b309edcbbeb91abf4e4 : SUCCESS in 12m 50s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/b28b305a54df48bab3fb637b1b346b61 : SUCCESS in 59m 14s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/262746b7ee3c4846ba031ae084f33ed3 : SUCCESS in 4m 12s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/87b2f1c7a389460b8bbb7322dfd9ec22 : SUCCESS in 4m 49s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e4be5f0a7ca041589ab2260161256d5b : SUCCESS in 7m 27s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/785a74a0da2140cd84c9eb450e56fce7 : SUCCESS in 2m 21s","accounts_in_message":[],"_revision_number":4},{"id":"edb378d90d9b20f167e7a5570cb1dc312f7ea9ac","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-08-19 08:30:24.000000000","message":"Patch Set 4:\n\n(3 comments)","accounts_in_message":[],"_revision_number":4},{"id":"71d9dbf0d393af76bcd55877168ae1129f3b78da","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-20 19:19:38.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"b059a71df5012c302ef2a6f4b5364fcb6c494776","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-20 19:35:25.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"a616cf8eb0ee48c081757f768163f5010903d9a8","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-20 19:35:50.000000000","message":"Patch Set 6:\n\n(4 comments)","accounts_in_message":[],"_revision_number":6},{"id":"d99ad00d286e328ed07a649d086e3d98f5491102","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-20 20:44:26.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/36b159b6bece4d7089197201a0b72377\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/45d508aa2e84438fa841150eae33514f : SUCCESS in 2m 14s\n- requirements-check https://zuul.opendev.org/t/openstack/build/530675ab44aa4fc8a91141a9abfc84b1 : SUCCESS in 1m 49s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/3ba80ee2389544908025e3308352c14d : SUCCESS in 46m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ebcfd3c5604d49dba46da1b73956854a : SUCCESS in 8m 01s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b3f729d5bdf04f559a53c02011c03783 : SUCCESS in 3m 31s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d58b3eb8856b4431bc01dbebf8b6173b : SUCCESS in 7m 18s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2ed8c54865ad4fc887f5274eab5520bb : SUCCESS in 5m 06s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/f1838e7bdcd84fb692968168c50bea73 : SUCCESS in 14m 57s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/412a1bf98c2946299b6341aab87a11e0 : SUCCESS in 1h 03m 00s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/d20d8ee3a3db4162a69fb63912f4eab1 : SUCCESS in 3m 05s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/74f255dd22f64479b04a0eafa1ac3f7f : SUCCESS in 8m 58s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c100b6e475fb46579d5f6c0846dcdbc8 : SUCCESS in 8m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a89e3b5da507476cac30aa34f292c62f : SUCCESS in 5m 05s","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"c155737ee3baf191a77dfbc0a5904aefd3e74d25","revisions":{"59aec85557604ac405eea19aa02e07d4f2a645fa":{"kind":"REWORK","_number":1,"created":"2026-08-12 17:48:44.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/59/1000759/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/59/1000759/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/1"}}},"commit":{"parents":[{"commit":"9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf","subject":"Merge \"trivial: Declare attributes on _BaseAdapter\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-12 17:29:26.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-12 17:48:01.000000000","tz":-300},"subject":"Add a v3websso authentication plugin","message":"Add a v3websso authentication plugin\n\nKeystone can delegate authentication to a browser through its WebSSO\nendpoint. Add a v3websso plugin that uses it: the plugin opens the WebSSO\nendpoint in the user\u0027s browser and receives the unscoped token that\nKeystone posts back to a listener on a loopback port.\n\nWebSSO is not a standardised protocol and has no RFC. Keystone defined it\nso that Horizon could authenticate users against an external identity\nprovider, and modelled it on the SAML 2.0 Web Browser SSO Profile: the\nidentity service responds with an auto-submitting HTML form that posts the\ntoken to a pre-registered origin. Keystone compares that origin against\nits trusted_dashboard list verbatim, so the callback path and the default\nport are the values given in the Horizon and Keystone federation\ninstallation guides.\n\nThe callback listener is built with wsgiref and urllib.parse. It binds\nonly to loopback addresses and accepts a single form POST at\n/auth/websso/, requiring the Fetch Metadata headers to describe a\ntop-level document navigation and the Referer, when the browser sends one,\nto match the identity service.\n\nThe unscoped token is cached on disk, keyed on the auth URL, identity\nprovider and protocol. The scope is not part of the key, so rescoping to\nanother project reuses the cached token rather than opening a browser\nagain. Cache files are created 0600 in a 0700 directory, and caching can\nbe disabled with the token-cache option.\n\nDerived from the keystoneauth-oidc plugin originally developed by the\nSpanish National Research Council and INDIGO-DataCloud.\n\nAssisted-By: Claude Opus 4.6\nChange-Id: I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/59aec85557604ac405eea19aa02e07d4f2a645fa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/59aec85557604ac405eea19aa02e07d4f2a645fa"}]},"branch":"refs/heads/master"},"4c1a22b125b36b28a25b6c05e07b2a0bbdd64c91":{"kind":"REWORK","_number":2,"created":"2026-08-13 22:46:40.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/59/1000759/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/59/1000759/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/2"}}},"commit":{"parents":[{"commit":"9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf","subject":"Merge \"trivial: Declare attributes on _BaseAdapter\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-12 17:29:26.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-13 22:46:20.000000000","tz":-300},"subject":"Add a v3websso authentication plugin","message":"Add a v3websso authentication plugin\n\nImplement Keystone\u0027s WebSSO protocol as a v3websso authentication plugin.\nThe plugin opens Keystone\u0027s WebSSO endpoint in the user\u0027s browser, receives\nthe unscoped token that Keystone posts back to a listener on a loopback\nport, and rescopes it as the other federated plugins do.\n\nWebSSO is not a standardised protocol. Keystone defined it so that Horizon\ncould authenticate users against an external identity provider, modelling\nit on the SAML 2.0 Web Browser SSO Profile. The callback path and the\ndefault port are the values given in the Horizon and Keystone federation\ninstallation guides, since Keystone matches the callback against its\ntrusted_dashboard list verbatim.\n\nThe unscoped token is cached on disk so that rescoping to another project\ndoes not require authenticating in a browser again. The token-cache option\nchooses between reusing a cached token, refreshing one that is known to be\nbad, and disabling the cache entirely; cache-path relocates it.\n\nDerived from the keystoneauth-oidc plugin originally developed by the\nSpanish National Research Council and INDIGO-DataCloud.\n\nChange-Id: I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/4c1a22b125b36b28a25b6c05e07b2a0bbdd64c91"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/4c1a22b125b36b28a25b6c05e07b2a0bbdd64c91"}]},"branch":"refs/heads/master"},"61a788db9a7b18cd3bc8cca8a52b75dbec8be2b8":{"kind":"REWORK","_number":3,"created":"2026-08-18 15:48:02.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/59/1000759/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/59/1000759/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/3"}}},"commit":{"parents":[{"commit":"9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf","subject":"Merge \"trivial: Declare attributes on _BaseAdapter\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-12 17:29:26.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 15:47:01.000000000","tz":-300},"subject":"Add a v3websso authentication plugin","message":"Add a v3websso authentication plugin\n\nImplement Keystone\u0027s WebSSO protocol as a v3websso authentication\nplugin. The plugin opens Keystone\u0027s WebSSO endpoint in the user\u0027s\nbrowser, receives the unscoped token that Keystone posts back to a\nlistener on a loopback port, and rescopes it as the other federated\nplugins do.\n\nWebSSO is not a standardised protocol. Keystone defined it so that\nHorizon could authenticate users against an external identity provider,\nmodelling it on the SAML 2.0 Web Browser SSO Profile. The callback path\nand the default port are the values given in the Horizon and Keystone\nfederation installation guides, since Keystone matches the callback\nagainst its trusted_dashboard list verbatim.\n\nThe unscoped token is cached on disk so that rescoping to another\nproject does not require authenticating in a browser again. The\ntoken-cache option chooses between reusing a cached token, refreshing\none that is known to be bad, and disabling the cache entirely;\ncache-path relocates it.\n\nDerived from the keystoneauth-oidc plugin originally developed by the\nSpanish National Research Council and INDIGO-DataCloud.\n\nChange-Id: I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/61a788db9a7b18cd3bc8cca8a52b75dbec8be2b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/61a788db9a7b18cd3bc8cca8a52b75dbec8be2b8"}]},"branch":"refs/heads/master"},"90938c2dbf36899222f896afcb0187f999aeddca":{"kind":"REWORK","_number":4,"created":"2026-08-18 20:35:25.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/59/1000759/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/59/1000759/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/4"}}},"commit":{"parents":[{"commit":"1237456de5e14e330488c37036b53cf63c7d8978","subject":"Expose the unscoped token of a federated plugin","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/1237456de5e14e330488c37036b53cf63c7d8978"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-12 17:29:26.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 20:34:23.000000000","tz":-300},"subject":"Add a v3websso authentication plugin","message":"Add a v3websso authentication plugin\n\nImplement Keystone\u0027s WebSSO protocol as a v3websso authentication\nplugin. The plugin opens Keystone\u0027s WebSSO endpoint in the user\u0027s\nbrowser, receives the unscoped token that Keystone posts back to a\nlistener on a loopback port, and rescopes it as the other federated\nplugins do.\n\nWebSSO is not a standardised protocol. Keystone defined it so that\nHorizon could authenticate users against an external identity\nprovider, modelling it on the SAML 2.0 Web Browser SSO Profile. The\ncallback path and the default port are the values given in the Horizon\nand Keystone federation installation guides, since Keystone matches\nthe callback against its trusted_dashboard list verbatim.\n\nDerived from the keystoneauth-oidc plugin originally developed by the\nSpanish National Research Council and INDIGO-DataCloud.\n\nChange-Id: I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/90938c2dbf36899222f896afcb0187f999aeddca"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/90938c2dbf36899222f896afcb0187f999aeddca"}]},"branch":"refs/heads/master"},"6b102cdbfbb0fff3d78eb0b8d7c54822469ca28b":{"kind":"REWORK","_number":5,"created":"2026-08-20 19:19:38.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/59/1000759/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/59/1000759/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/5"}}},"commit":{"parents":[{"commit":"b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8","subject":"Expose the unscoped token of a federated plugin","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-12 17:29:26.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-20 19:18:03.000000000","tz":-300},"subject":"Add a v3websso authentication plugin","message":"Add a v3websso authentication plugin\n\nImplement Keystone\u0027s WebSSO protocol as a v3websso authentication\nplugin. The plugin opens Keystone\u0027s WebSSO endpoint in the user\u0027s\nbrowser, receives the unscoped token that Keystone posts back to a\nlistener on a loopback port, and rescopes it as the other federated\nplugins do.\n\nWebSSO is not a standardised protocol. Keystone defined it so that\nHorizon could authenticate users against an external identity\nprovider, modelling it on the SAML 2.0 Web Browser SSO Profile. The\ncallback path and the default port are the values given in the Horizon\nand Keystone federation installation guides, since Keystone matches\nthe callback against its trusted_dashboard list verbatim.\n\nDerived from the keystoneauth-oidc plugin originally developed by the\nSpanish National Research Council and INDIGO-DataCloud.\n\nChange-Id: I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/6b102cdbfbb0fff3d78eb0b8d7c54822469ca28b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/6b102cdbfbb0fff3d78eb0b8d7c54822469ca28b"}]},"branch":"refs/heads/master"},"c155737ee3baf191a77dfbc0a5904aefd3e74d25":{"kind":"REWORK","_number":6,"created":"2026-08-20 19:35:25.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/59/1000759/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/59/1000759/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/59/1000759/6"}}},"commit":{"parents":[{"commit":"b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8","subject":"Expose the unscoped token of a federated plugin","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-12 17:29:26.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-20 19:34:53.000000000","tz":-300},"subject":"Add a v3websso authentication plugin","message":"Add a v3websso authentication plugin\n\nImplement Keystone\u0027s WebSSO protocol as a v3websso authentication\nplugin. The plugin opens Keystone\u0027s WebSSO endpoint in the user\u0027s\nbrowser, receives the unscoped token that Keystone posts back to a\nlistener on a loopback port, and rescopes it as the other federated\nplugins do.\n\nWebSSO is not a standardised protocol. Keystone defined it so that\nHorizon could authenticate users against an external identity\nprovider, modelling it on the SAML 2.0 Web Browser SSO Profile. The\ncallback path and the default port are the values given in the Horizon\nand Keystone federation installation guides, since Keystone matches\nthe callback against its trusted_dashboard list verbatim.\n\nDerived from the keystoneauth-oidc plugin originally developed by the\nSpanish National Research Council and INDIGO-DataCloud.\n\nChange-Id: I89903f44b8e7f1a0b5dcd025e12285fb62dab7c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c155737ee3baf191a77dfbc0a5904aefd3e74d25"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c155737ee3baf191a77dfbc0a5904aefd3e74d25"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
