)]}'
{"id":"openstack%2Fopenstacksdk~978289","triplet_id":"openstack%2Fopenstacksdk~master~I07941d2036a46d5345841f7cbb163e1386494107","project":"openstack/openstacksdk","branch":"master","topic":"typing","attention_set":{},"removed_from_attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-03-07 12:19:42.000000000","reason":"\u003cGERRIT_ACCOUNT_15334\u003e replied on the change","reason_account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}}},"hashtags":[],"change_id":"I07941d2036a46d5345841f7cbb163e1386494107","subject":"utils: Add ensure_service_version helper","status":"MERGED","created":"2026-02-27 23:59:01.000000000","updated":"2026-03-07 15:49:05.000000000","submitted":"2026-03-07 15:48:13.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"978289-typing","meta_rev_id":"ea8edf8f681011ff6b78ed9d05623545ce521489","_number":978289,"virtual_id_number":978289,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-03-07 15:48:13.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":2,"date":"2026-03-06 16:10:47.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_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":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":1,"date":"2026-03-06 16:10:47.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_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},"Allow-Post-Review":{"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Abstain","+1":"Approved for Zuul Post Review Pipeline"},"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"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-28 01:42:33.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"}],"messages":[{"id":"5150f9c31f5e965a61dd0e0cb9bd230dd299e8b0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-02-27 23:59:01.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"bc88557f16b5d8f76d64d9cb26971eb8db8d4b0c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-28 01:42:33.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/2b0552563801434991f99ac3f723dc40\n\n- bifrost-integration-openstacksdk-src https://zuul.opendev.org/t/openstack/build/588373c3899a48378e8ac4f6f2359bef : SUCCESS in 52m 17s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0fa25b12f6464e3eb185af0992c733ef : SUCCESS in 3m 37s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/a2fa88c3866149bda80497612c01d1fa : SUCCESS in 4m 22s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/83fad22e1652446d962f3be8e47be234 : SUCCESS in 3m 50s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6b7c34b1ca02448f9e643b6471c93e7a : SUCCESS in 4m 07s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/74a48bf634e6494782db9f8e6071974f : SUCCESS in 5m 29s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/abc73a55125d408eac8bb23460d97656 : FAILURE in 1h 03m 11s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/0aa0bf5621c94451bd3de49579cf756e : SUCCESS in 3m 32s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/2ae9d281f2af4c50b9be1da078a7570b : SUCCESS in 4m 32s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/26b79079d0bb427791d13319d5fdf608 : SUCCESS in 6m 32s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8425e3ec766e42878287d121c4edb246 : SUCCESS in 5m 45s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c04be8bbc7144468a19b7a460520c3f4 : FAILURE in 38m 19s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/9cb9ad7b5640477489ec824da28d48cd : FAILURE in 1h 33m 36s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/37a2e2b735d14ec88e15d1e0ada404ee : FAILURE in 1h 36m 19s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/217bcef5e1af42a1b3dfed43ad8c8ca4 : FAILURE in 58m 41s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/12750d1d206d4c3a9641b3ec3ad26d20 : SUCCESS in 27m 32s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/7b106177b277418daf6c46e353225be5 : SUCCESS in 27m 37s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/c46081f88bd444f996c6d956c5e65264 : SUCCESS in 48m 51s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/d3111772ef3143d49fe0bdf5ea4cecd1 : SUCCESS in 1h 18m 23s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/7197516e4c3b4549800f294238779377 : SUCCESS in 1h 17m 15s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"2c1976ea1d7567617d693bfe502f2dd1e75cd839","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-01 11:01:07.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"9707a1a7c72eccd1d85dac31d501081fe5caeeed","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-01 12:38:11.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/28517e5aa94f4c688baf43f0ed852bac\n\n- bifrost-integration-openstacksdk-src https://zuul.opendev.org/t/openstack/build/517f58c930ca4e24ba6ce6e47162ccf3 : SUCCESS in 46m 32s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/457848516bef418b8df2e4a3014f5647 : SUCCESS in 4m 35s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/bdef2728d7a94e84b7ef9b44919c473a : SUCCESS in 2m 30s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/57fbec8938764d0d99a78420755b7f31 : SUCCESS in 3m 22s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/193fc60a9cf543769b0bef3ecfa73d29 : SUCCESS in 2m 12s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/bf27a8fc366b4dbb8e84f385a67b3309 : SUCCESS in 7m 21s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/dc0ef775b2964841a373f2c6c440a239 : FAILURE in 1h 00m 57s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/c9b857ea6b9c4ef5b8fc08a78013d69e : SUCCESS in 3m 12s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/2f1e4b8b3bf5479a9b06d0923f7a37a2 : SUCCESS in 6m 08s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/9ff6458c05c0473b929ec1bf2494f1a6 : SUCCESS in 4m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2160bbef58d64979b7bfb1132331a7c3 : SUCCESS in 8m 35s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5bedb51130fa472eafc4219e03b8db20 : FAILURE in 44m 31s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/15b4535193c045088af0e0bb96f9d5ae : FAILURE in 59m 20s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/deae404a064347b28237525d9ca7ab27 : FAILURE in 1h 30m 03s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/e8624942a6854e3385ac7a8c98bf401f : FAILURE in 40m 46s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/8d29137192f445cf8e8d76e000e10b0d : SUCCESS in 33m 17s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/3cd031e8e1be4d86a45ab13cf7206ebd : SUCCESS in 27m 50s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/1775e7cb702944a68b908fa3fa768151 : SUCCESS in 30m 05s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/ea327228911848f5b78fec048053e88a : SUCCESS in 41m 34s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/b5dec83a413e403da2a0c64236090d10 : SUCCESS in 1h 27m 59s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"7b90c53333b726d6eea840982d11910500e47b20","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-02 10:28:01.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"666d220f4527806613fbb0737f5d3b2f0507bb45","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 12:32:51.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f04fd5f6758c455fb47b8014d645e4ef\n\n- bifrost-integration-openstacksdk-src https://zuul.opendev.org/t/openstack/build/f7d4b34197ae4c5897e1658918061e84 : SUCCESS in 24m 33s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fb623989511d4da9918ed88f37f8bb6d : SUCCESS in 4m 33s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/6945ab8eb7fd40e087af94aafec2738c : SUCCESS in 4m 15s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/138a10ec03ad46bd8254233b151b8e11 : SUCCESS in 3m 31s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b945677969214724bd4dc63dafb08ed1 : SUCCESS in 4m 20s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/128e75aa09254761a54d73c0a8937237 : SUCCESS in 5m 11s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/9d392370c36b43a6915b3c3706bf98d0 : SUCCESS in 1h 01m 32s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/04dbcb26e8024d02b7e9ba552298ead6 : SUCCESS in 3m 54s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/b24f5b85d12f42ddb0d6d02da8d86b0e : SUCCESS in 4m 17s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/bbbe73c01c344378a18dee25c6df7c72 : SUCCESS in 5m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/644db66abec046b99e3883f611e9246b : SUCCESS in 11m 36s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7c4d728f003b499ca0774bfcad0ce45a : SUCCESS in 1h 01m 10s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/54ef46a8d59e4750b3deaf78ecdd17af : SUCCESS in 1h 38m 22s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/b1692c9c9ae04f87934942ac5f8a88b7 : SUCCESS in 1h 32m 37s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/89f656a05c704553b8440a038118834f : FAILURE in 1h 07m 58s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/20faef2e953340158ce79755f261f774 : SUCCESS in 30m 55s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/9a548438d653460e9a65e44195a2e00d : SUCCESS in 13m 13s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/37ad8a9dcec04ff686eddefccde18f70 : SUCCESS in 45m 11s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/ff5ddd176b2749d7bff2e3885367215b : SUCCESS in 1h 12m 44s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/200feaede8074ebe94f0491d458a47fc : SUCCESS in 45m 05s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"03227aab64dd5fe95a2fa319593621e8efbbe22d","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-06 16:10:47.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"36312af6fbc3e6f6b7d2250e9632daa708d25bae","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-06 16:12:59.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"7604ae5fedbc9e18feb38eb71796a5ef02f08f87","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-06 18:28:37.000000000","message":"Patch Set 3: Verified-2\n\nThis change depends on a change that failed to merge.\n\nChange https://review.opendev.org/c/openstack/openstacksdk/+/978288 is needed.","accounts_in_message":[],"_revision_number":3},{"id":"6deb89a9824f47e7d79fb59f31e419c45bc257ac","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-07 12:19:42.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"40e73deb346afc066d14a0c555f9519109433cc1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 13:54:50.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d400d8191e864a2280259c6f977bf8bf\n\n- bifrost-integration-openstacksdk-src https://zuul.opendev.org/t/openstack/build/dc5d1625054649a3ac961335bf1f8571 : SUCCESS in 38m 06s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/de5f44534e48438996207e299303f9b6 : SUCCESS in 5m 06s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/363ad24bef3b45679b150acb19bd2a45 : SUCCESS in 3m 34s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/2567bbc079c74667bac211cb9748bfe7 : SUCCESS in 3m 13s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/739f38340d474e2584e4593c7998b8d1 : SUCCESS in 3m 38s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2c2d70fb1f514eef8ff4d09b1b23cf1d : SUCCESS in 6m 22s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/a4d482120db344f7b1a3737026574de9 : SUCCESS in 1h 06m 56s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/1cdb38ba4aa34fd2b0fd6cac67787877 : SUCCESS in 3m 09s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/6ca44b598a6a4cb8838600e7ce78b7ce : SUCCESS in 2m 52s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/6c4ceb43d02243a69a74a68d40b21b70 : SUCCESS in 4m 24s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5bf8e3de562e48dfa9708954f122e6d1 : SUCCESS in 11m 15s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/9031331c08d5492a877d241ec8b6cc6f : SUCCESS in 1h 00m 46s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/1d35cbed4bac478081642bca7c4c6c60 : SUCCESS in 1h 28m 26s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/3eec689e53454370bb0d8ad2f440c797 : SUCCESS in 1h 28m 26s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/ceacf8fe9c8c4cf5aecd14d54c086a2f : FAILURE in 37m 26s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/e8fa57976fab4f30b423c9edd78d99c6 : SUCCESS in 33m 37s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/35c5cd5eac18452c81452d62af8204c3 : SUCCESS in 29m 15s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/7c8f23d93cfc4f83b8d5d4bec3419440 : SUCCESS in 45m 44s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/7260f62d0c0c4d16818081a7737c89ef : SUCCESS in 1h 16m 07s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/4daf431675ae4847bfa941c2239b99eb : SUCCESS in 53m 20s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"3297cb9635a16d282d406ffb941e6fc153e3099d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 14:04:58.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"5f4b3b60f2d985a6122ca459e6074e3ed8e9880d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 15:48:13.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/707a578c5eca4524bacb0823619a331b\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/91670f4726fd4bd2a5dfc27ebbfe7a6f : SUCCESS in 4m 43s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/b78b60294ec44988a6525e71df3bc71f : SUCCESS in 3m 51s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/462a4c510681435cbe327fae4a5e8fa2 : SUCCESS in 2m 51s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/6b10ee5b06fd42f1a5ca47d3b9ff24df : SUCCESS in 1h 00m 43s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/dce8456217774fa29b080c81f46cc565 : SUCCESS in 2m 34s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/b5d984a09f064f9996821a2251d4b93f : SUCCESS in 3m 43s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/bd541bfb90c14f5eaa7437c394105e5d : SUCCESS in 3m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8dace6ae8eb7487e99cf8fec65838409 : SUCCESS in 8m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/dd491df6b27a40dda4480ec558c24926 : SUCCESS in 1h 09m 46s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/c8df7bd4c4b946dc808ab448a6d65c67 : SUCCESS in 1h 34m 52s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/c84f69c1240444ff98bb8979092ed60b : SUCCESS in 1h 35m 36s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/f7c525002dbb4cb5917a4c174cd584cc : SUCCESS in 46m 23s","accounts_in_message":[],"_revision_number":3},{"id":"2d2559e249164c6b06b2ed9cf60909ce2ed0a946","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 15:48:13.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"ea8edf8f681011ff6b78ed9d05623545ce521489","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 15:49:05.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6299c437a4ce4f8cb41fbd29d5f51f49\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fa62461931d349379736e5dd40c1fc0c : SUCCESS in 42s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"8334b199c5de464961fe9d9ba17fc0eabfc4d869","revisions":{"751a42fa1429c41b7571d87988959481d826155f":{"kind":"REWORK","_number":1,"created":"2026-02-27 23:59:01.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/89/978289/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/89/978289/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/1"}}},"commit":{"parents":[{"commit":"e7c009883d01a04f06477ee7b289df8082316e28","subject":"service_description: Avoid use of built kwargs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/e7c009883d01a04f06477ee7b289df8082316e28"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-02-26 00:35:09.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-02-27 23:58:33.000000000","tz":0},"subject":"utils: Add ensure_service_version helper","message":"utils: Add ensure_service_version helper\n\nThis allows us to narrow the type of the Proxy APIs without isinstance\nchecks or assertions. This is an alternative to replacing e.g.\n`block_storage` with `block_storage_v2` / `block_storage_v3` or\nimplementing identical methods across the different Proxy\nimplementations (which I suspect was the original plan, but it hasn\u0027t\nworked out).\n\nChange-Id: I07941d2036a46d5345841f7cbb163e1386494107\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/751a42fa1429c41b7571d87988959481d826155f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/751a42fa1429c41b7571d87988959481d826155f"}]},"branch":"refs/heads/master"},"cf1b1e21843af5a0272e199d828d1817df945804":{"kind":"REWORK","_number":2,"created":"2026-03-01 11:01:07.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/89/978289/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/89/978289/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/2"}}},"commit":{"parents":[{"commit":"e7c009883d01a04f06477ee7b289df8082316e28","subject":"service_description: Avoid use of built kwargs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/e7c009883d01a04f06477ee7b289df8082316e28"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-02-26 00:35:09.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-01 10:58:23.000000000","tz":0},"subject":"utils: Add ensure_service_version helper","message":"utils: Add ensure_service_version helper\n\nThis allows us to narrow the type of the Proxy APIs without isinstance\nchecks or assertions. This is an alternative to replacing e.g.\n`block_storage` with `block_storage_v2` / `block_storage_v3` or\nimplementing identical methods across the different Proxy\nimplementations (which I suspect was the original plan, but it hasn\u0027t\nworked out).\n\nChange-Id: I07941d2036a46d5345841f7cbb163e1386494107\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/cf1b1e21843af5a0272e199d828d1817df945804"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/cf1b1e21843af5a0272e199d828d1817df945804"}]},"branch":"refs/heads/master"},"8334b199c5de464961fe9d9ba17fc0eabfc4d869":{"kind":"REWORK","_number":3,"created":"2026-03-02 10:28:01.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/89/978289/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/89/978289/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/89/978289/3"}}},"commit":{"parents":[{"commit":"e7c009883d01a04f06477ee7b289df8082316e28","subject":"service_description: Avoid use of built kwargs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/e7c009883d01a04f06477ee7b289df8082316e28"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-02-26 00:35:09.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-02 10:27:20.000000000","tz":0},"subject":"utils: Add ensure_service_version helper","message":"utils: Add ensure_service_version helper\n\nThis allows us to narrow the type of the Proxy APIs without isinstance\nchecks or assertions. This is an alternative to replacing e.g.\n`block_storage` with `block_storage_v2` / `block_storage_v3` or\nimplementing identical methods across the different Proxy\nimplementations (which I suspect was the original plan, but it hasn\u0027t\nworked out).\n\nChange-Id: I07941d2036a46d5345841f7cbb163e1386494107\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/8334b199c5de464961fe9d9ba17fc0eabfc4d869"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/8334b199c5de464961fe9d9ba17fc0eabfc4d869"}]},"branch":"refs/heads/master"}},"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Allow-Post-Review","status":"MAY"}]}],"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":"Allow-Post-Review","description":"Allow Post Review","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"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":{}}}]}
