)]}'
{"id":"openstack%2Fswift~955263","triplet_id":"openstack%2Fswift~master~Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9","project":"openstack/swift","branch":"master","topic":"ringv2_history_chain","attention_set":{"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2025-10-13 16:55:52.000000000","reason":"\u003cGERRIT_ACCOUNT_1179\u003e replied on the change","reason_account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"}},"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-04-07 05:01:51.000000000","reason":"Vote got outdated and was removed: Code-Review-1"},"34892":{"account":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"last_update":"2026-04-07 05:01:51.000000000","reason":"Vote got outdated and was removed: Code-Review-1"},"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2025-08-27 07:54:45.000000000","reason":"Vote got outdated and was removed: Code-Review-1"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9","subject":"ringbuilder cli: better track different command types","status":"NEW","created":"2025-07-17 05:20:21.000000000","updated":"2026-06-01 09:29:43.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":22,"unresolved_comment_count":10,"has_review_started":true,"meta_rev_id":"840269364dde22ae8761b372a95f595fe2327a99","_number":955263,"virtual_id_number":955263,"owner":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-06-01 09:29:43.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-07-17 06:20:51.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-07-17 06:34:52.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":"2025-08-25 16:47:36.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2025-10-08 16:33:07.000000000","updated_by":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"reviewer":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"state":"CC"},{"updated":"2025-10-08 22:05:06.000000000","updated_by":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"reviewer":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"state":"REVIEWER"},{"updated":"2025-10-13 16:55:52.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"}],"messages":[{"id":"25ca834e8812f1b98fb8751aa9bf194214457d11","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-07-17 05:20:21.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b76117799df2b1ccf95ccebb8fcbfa0c9b3999ec","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-17 06:20:51.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/89070dd779074baab2e74a2948c090a2\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3667c39e95c342c1a89fabc8a5c51405 : SUCCESS in 58m 27s","accounts_in_message":[],"_revision_number":1},{"id":"156d68b6942d8f6c3fe3c11bd33af479d599320a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-17 06:34:52.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/28fe42b4ac994be1a0be7cbb08fd9303\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a3333df6ffed422591572e2e7297fd68 : SUCCESS in 11m 31s\n- grenade https://zuul.opendev.org/t/openstack/build/eb9b09daa0e34e3fa8eb804a1507487d : SUCCESS in 1h 00m 30s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/7a80adc1ad124cf194b520dedddba90c : SUCCESS in 35m 44s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/81b6ea82eab54a9e81b62494d9219175 : SUCCESS in 46m 16s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2a5506183ab34837bc8fce22be5c3a61 : SUCCESS in 1h 09m 13s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6eea9de2613d47aa9fcf49593ddceb0b : SUCCESS in 18m 15s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3737340cbd03419e92b83d4fcc1738f1 : SUCCESS in 10m 03s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a607d25490314c3eba7d01dff8cab066 : SUCCESS in 17m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8d9e8c2611fe44fea6383135802639c1 : SUCCESS in 4m 57s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/d2e18e2000d04cf6b8403b4874e0e5d4 : SUCCESS in 8m 00s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/03bb1fcd5592450688ac159974ec0ebc : SUCCESS in 15m 16s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/2d55fef5a7b44f93a58c00c79095622e : SUCCESS in 17m 03s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/f09161493b3d4ba5bcd4cb1e76caf419 : SUCCESS in 10m 38s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/d1087d02c8b747c197e3ab250f17755f : SUCCESS in 16m 56s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/f3e8b517ee2a46e883c242c49633196c : SUCCESS in 14m 16s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/16bebe9ee1be4b04af3cde795e76d9fa : SUCCESS in 14m 55s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/831406f75a95415a840779deceb00b12 : SUCCESS in 5m 57s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e602bc0926dd4ac8b66f166e3ab9f27b : SUCCESS in 15m 55s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/8e41237198434ee9a412bff611246d90 : SUCCESS in 7m 21s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/2012281789a643ccb6157f75be23ee7d : SUCCESS in 57m 21s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5888074b6fb94f38940740e99b0fd140 : SUCCESS in 53m 55s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/12f500c886a14587a32020494aa91bd3 : SUCCESS in 55m 40s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c0c2c3d19eb24a06a5773fdcd0719797 : SUCCESS in 7m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/096e40f6f94a4d779c315256605fe8a3 : SUCCESS in 3m 35s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f4159a53723f477f8723302f34904e1b : SUCCESS in 8m 17s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/03832078f201438786d3f05ae9e63ab8 : SUCCESS in 49m 07s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d4ccc2e97baa4e27bab4b8f9c67ed0b5 : SUCCESS in 1h 00m 54s","accounts_in_message":[],"_revision_number":1},{"id":"f44ee3295ef64003be88f793c0b2b81961a16cfc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-07-22 07:01:07.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"f6d7cab231846bfcd47d088033874e3f344303d4","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-22 08:01:28.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f7621ab8bfda45108158a1e7d252e3fd\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/184b79ed656144a8b13d104c904f4436 : SUCCESS in 57m 20s","accounts_in_message":[],"_revision_number":2},{"id":"f19c9a888fd7be83d4caeaa08702451a1d7a6632","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-22 08:08:44.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/45ebf7e0fd66408aa67091c7b0df8af5\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3df3a31b801e490e9497d22b4055e46c : SUCCESS in 5m 19s\n- grenade https://zuul.opendev.org/t/openstack/build/2ec45918d85f4b55b4040bd10895cf30 : SUCCESS in 59m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/389f38023fe24a5086033de3dba0fd12 : SUCCESS in 1h 01m 38s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/e13882c8368445a1971cc91b5665fa5e : SUCCESS in 55m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e29f273a74224e0f90d5647e45ebcd5c : SUCCESS in 32m 01s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4ff089ccee3c418492f9ac6d49122941 : SUCCESS in 18m 35s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bdb519eefdcd45f4a1ec0a49cfc6b732 : SUCCESS in 21m 50s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9e46044fbcd9437e84627d511044ea51 : SUCCESS in 23m 07s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/80be8b9b7c254bd4b580606099aec032 : SUCCESS in 5m 25s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/823f347031d84dadba26ac7a2227eec5 : SUCCESS in 20m 34s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/a69a0c2eb0aa42d19fa1e55744db9572 : SUCCESS in 7m 41s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/d810a4340e124d10bc137870130c4ca2 : SUCCESS in 10m 16s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/d648f04ae8b9401482f96469ddd51936 : SUCCESS in 23m 24s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/7f8952119ce74e1081dcb450f8209179 : SUCCESS in 15m 16s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/777e4c2bd66e4142ba3ad56828cffb9a : SUCCESS in 14m 49s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/828ca9d5cf2d4216a5cfada219e088fb : SUCCESS in 15m 11s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/962c01d369b642c79940c2a41d6c8913 : SUCCESS in 6m 05s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/92be7b07a97744f3998105a296d0b5d1 : SUCCESS in 17m 52s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/75172bf6b881442ca0165adb578d4e7a : SUCCESS in 4m 27s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b4e49f66d8fa47499c5eefa50789642d : SUCCESS in 33m 36s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/19f3661f1af24c62b335d21d6ffc1e3f : SUCCESS in 54m 24s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/08e1f3ab75ea4d98ab614eeb283de91d : SUCCESS in 52m 19s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/71d7aab708a241d1a65c12e0ef4a7589 : SUCCESS in 7m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8dd4a47f34054a2bbfa88d8121156bc5 : SUCCESS in 2m 19s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/9c5379b425cf40d78ae03176f0597ac3 : SUCCESS in 24m 48s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/32a98f5411404cd7918ee53b2c76e580 : SUCCESS in 51m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0f2c2d82911c4b50a99929a1f1814fab : SUCCESS in 54m 32s","accounts_in_message":[],"_revision_number":2},{"id":"d2bd40d554e50a269b1149eb79e34f807a8741cf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-08-13 22:59:15.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"3123ac6100e651677c120be36f06099cc9ce1380","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-14 00:14:35.000000000","message":"Patch Set 3: 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/9a84ef5fd7b04c09a9238290e16b0dad\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cc01c09bea41445c8a1c35b1f9994a6d : SUCCESS in 11m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/ec5d39849f674fd4b6c042a4c5e82cd5 : SUCCESS in 35m 58s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/2cfde5f1b7ca4b299b35dbdee4319263 : SUCCESS in 1h 04m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/11343306b3b14aa18801c6f958e91058 : SUCCESS in 52m 21s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/cba516f9ca0642fd8f42bb4fb1259244 : SUCCESS in 31m 19s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a38b79636a1446b1a4acbb21067c674c : SUCCESS in 15m 26s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e354e6ea5e584e5dba089431aed4ae6c : SUCCESS in 20m 49s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/03613e120c6b4ec18737ced259ffc58c : SUCCESS in 12m 20s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/74aa967f2d2348c1bd4a116b952abbb8 : FAILURE in 3m 25s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c6adfdbe677a4130989361075ce6049f : SUCCESS in 15m 29s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/3bb6ac813b2a4a619b5464ca29f9bf29 : SUCCESS in 13m 09s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/d1094c52ea294d20adb9443cdc244aa1 : SUCCESS in 27m 58s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/3995f91d4d2440ee98c7b41b577f2494 : SUCCESS in 31m 03s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c92ccb2771c14c60aaa4696a5e20b597 : SUCCESS in 14m 00s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/f9b73fc537224c6db59f2f5c1119fd95 : SUCCESS in 11m 55s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/df3179424c664984a1aca7a85b0e49f5 : SUCCESS in 16m 19s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c2c8baab880c4f8abfbd7835d29df174 : SUCCESS in 6m 11s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/cbcd87d87ff641f8b8fb9968980010b5 : SUCCESS in 9m 16s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1da46446caa546ba88b03777cdc4e51c : NODE_FAILURE Node(set) request 2c0641b5a02444ad91e02f42f33e5e85 failed in 0s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/c53f064ad8dd479cb2e56b9771022102 : SUCCESS in 39m 06s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5a9d477ddc5f44e0a733336678d67e40 : SUCCESS in 49m 34s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4beee22a64534e11b67e18795e5254cc : SUCCESS in 48m 39s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d4862b20a75148008900c78fa9bc7f40 : SUCCESS in 14m 02s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8e599c9e02dc4f9badf7b1a76d5ca67c : SUCCESS in 3m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e9866266827748dc9cf3196da446362f : SUCCESS in 19m 36s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/2c4fbfb0cec6410f90ffdb94b7d8947c : SUCCESS in 1h 05m 16s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/66e931dcecbb4b4a8ed608276dbfd9c7 : SUCCESS in 1h 00m 14s","accounts_in_message":[],"_revision_number":3},{"id":"066638123a499fa66b0d6c50b675a641b64cab6a","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-08-25 03:35:34.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"dfe4b3d30bfefd8fdf1168f22caf00243bde8cf7","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-25 04:27:19.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2fa5314d0c444ae4857482981fab9a30\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/783c819f73e141e4907a35326952a561 : SUCCESS in 49m 31s","accounts_in_message":[],"_revision_number":3},{"id":"4e963a86e115dc03857e693f3a0c5c2f757f8eeb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-25 04:44:27.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9bf034ea703d4dc2a7fd13c043424172\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c6d4b87e24ec4ffc80b1d4a0ed226963 : SUCCESS in 10m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/e1f3fff8ec5b49498321ab8f421da8cf : SUCCESS in 27m 52s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/17a8156750b045358dcb8eecbf6ee4a6 : SUCCESS in 1h 03m 36s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9e273b436d124313ad185466b9de678a : SUCCESS in 32m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/29af3d02bec2416ea7f44e851f4bd64e : SUCCESS in 58m 57s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e058103494ed4e9da4a792be9d2068ce : SUCCESS in 19m 37s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2207ade9cefb4de684de7efcdd1352fb : SUCCESS in 20m 52s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6673417114dd4afbba81ebc0d23961a7 : SUCCESS in 19m 39s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/5565c686ba174f62bc77b49de9b6e064 : SUCCESS in 4m 50s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e95a2b56eea54f7ea62c4b11aaf3d2de : SUCCESS in 29m 30s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/e5f8e70b920d487fad0c7ca5d50b26dd : SUCCESS in 21m 54s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/91722aa4cb204e76ab3c6a28c3ca3173 : SUCCESS in 10m 38s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/16cfea7e952d454ab3e208bf18789988 : SUCCESS in 20m 13s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/f392256dbf064cdcb51e97fd3de4e1bf : SUCCESS in 15m 57s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/ddbb7ed35cec411d949f6fef51f3a981 : SUCCESS in 14m 29s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/9a2592e0506744eabb4b0df2ec97eb29 : SUCCESS in 15m 27s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/9e5fd55389e94b68a00dbb6a4f237c4c : SUCCESS in 7m 15s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/4b35744411204c69b39bfb6e3826feab : SUCCESS in 12m 28s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/b387c4a19df3448083c474f25cc6563b : SUCCESS in 7m 00s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d9dbdbb98ce84ae0aab0d942759736cd : SUCCESS in 55m 16s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6b71fafa4b794676aedd3c26fa5bb609 : SUCCESS in 47m 07s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/7f429f642dd44664bf55c3f92a32d47a : SUCCESS in 55m 22s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8fedce57b65b461e9924cc89e73324ca : SUCCESS in 20m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6127eb057e8c4464b526462005502a70 : SUCCESS in 2m 35s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a98c5776d62f4bedad2d6514c6abb98e : SUCCESS in 23m 46s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/5a9d0e8c5cf449ceaec38766d770ea72 : SUCCESS in 37m 59s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/83fdb794553445f6ad3019f660f38896 : SUCCESS in 44m 56s","accounts_in_message":[],"_revision_number":3},{"id":"f055e07d61ae6411ff1e421494112aa7690a00d5","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-08-25 16:47:36.000000000","message":"Patch Set 3: Code-Review-1\n\n(6 comments)","accounts_in_message":[],"_revision_number":3},{"id":"ab49f5fd78e7017994ecc2e9cc948187dfd4aa84","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-08-26 05:05:12.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"1cc704f7e8ac07cc169944d2480f1c004ebc4361","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-08-27 07:54:45.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"0cd7b0d7b575260fab61f10d9011c430d9ec273c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-27 09:01:42.000000000","message":"Patch Set 4: 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/e788bb87c9ee4543982fb7e21cf1c142\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5faecf363685491d8abf61832ecc031f : SUCCESS in 5m 23s\n- grenade https://zuul.opendev.org/t/openstack/build/6b64c1c708304d0bac2b0562743a788b : SUCCESS in 28m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/463c3ba9c9834e96b74c991bb0a31b2f : SUCCESS in 33m 47s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6e94a5b6a6c744cfa6d270e94fdb3fe2 : SUCCESS in 49m 18s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ef28f356641a4877925c769214e3eab9 : SUCCESS in 47m 00s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3b1f5011e9e44836b2662a7d1e44500f : SUCCESS in 20m 52s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c4b0c4f99e33456cb7c3a46d3fe340a5 : SUCCESS in 19m 15s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ed79cdf7040c4d769f3755ad29ed5cf3 : SUCCESS in 21m 17s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ccf5d297d4cf4b9c8d67f8b0d6e4e1ab : SUCCESS in 7m 14s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c88ee8321856462089e475435cda364b : SUCCESS in 22m 03s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/235b9fd058434b4686329007af68066a : SUCCESS in 9m 28s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/b23fe4ab587748db8a2201ce5a82aaf0 : SUCCESS in 33m 07s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/dec52ee1e7ef49e988a0d4279d6076d2 : SUCCESS in 20m 01s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/bd8a5420d38c4939a7f02580accab671 : SUCCESS in 11m 38s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d254da7604234609aa7e83c28631dabe : SUCCESS in 15m 06s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/aeaa6aaf6dda4bd3a871b7dc0f53b8f2 : SUCCESS in 14m 53s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a7d1e01fa42e43b7894bbbab5130de2a : SUCCESS in 6m 23s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/f6a9c45804814979bbcb4071c3d41e33 : SUCCESS in 17m 34s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/b1b57a9b35b6480dba61e113f0404f41 : SUCCESS in 8m 47s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/7383c4200f544ac3aa45a3ed5db9e0e9 : FAILURE in 58m 03s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/0ab0f8854c8b4c58a35a3692898ef254 : SUCCESS in 50m 50s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/fd615ad8bcaa47e48e2c153b86000c37 : SUCCESS in 37m 22s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ecbafc5ab9464bf09bddfae00f28cd98 : SUCCESS in 21m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fe1f54547d9b4e43bc71fe7f04898c07 : SUCCESS in 2m 40s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c09c3dd7c4ac4b14b539299f5855b047 : SUCCESS in 23m 26s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/147d020365804b3897c8762341b0dc6b : SUCCESS in 52m 26s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/bbd8ddc017a1403c893b523ed307cafb : SUCCESS in 59m 08s","accounts_in_message":[],"_revision_number":4},{"id":"d5e28168151c11603939c1b81a0632283fb9e4c8","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-27 09:03:03.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/15f49719848a4923829de7ca73584b45\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/f7f6245a5f1f4cad95e7e2b3e9875b86 : SUCCESS in 41m 14s","accounts_in_message":[],"_revision_number":4},{"id":"38b2f6869864ef26f931d220effe1da148a8c2e5","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-09-09 04:25:23.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"c2ec408c2162a6e624e3f5f83c2c03ada3379172","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-09 05:32:31.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c7dd6973f1634090b66e046a0d70455d\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5dd03bc1bccc4c5a831105cff185c27e : SUCCESS in 8m 17s\n- grenade https://zuul.opendev.org/t/openstack/build/4efc92f4299b437c900a655c7d02bafe : SUCCESS in 52m 50s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/2346b6aa10c94a7d9c4dfad2f9e1bd8d : SUCCESS in 59m 04s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f05fcae1dc4c4c57a0dea0cde7208f86 : SUCCESS in 41m 54s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/dabb1390545c4528b7066dc9419ecf4a : SUCCESS in 58m 32s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/121ccede5f81442689478da89f691ea6 : SUCCESS in 11m 48s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5c524e5dbf644196b8fe72522723add7 : SUCCESS in 11m 47s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4e43f072b8e2489f85683b4082f1cec3 : SUCCESS in 14m 32s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1d07210be11741fcb95b847f91913298 : SUCCESS in 5m 46s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b0ed6f88d6814eb095917f127189a545 : SUCCESS in 9m 55s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/557bc5e277c342738706e30c856b948d : SUCCESS in 7m 59s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/c01899ba767045d9a9c0ade8a8153696 : SUCCESS in 27m 32s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/b7ab82de470941cdae28c54de030356d : SUCCESS in 13m 31s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e2037a9566c64ef4bf96e134279e76c9 : SUCCESS in 11m 23s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3c7bb732d3574e82a6cf9525ff2fab52 : SUCCESS in 13m 05s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0bd120f324e342d9a1729519ca75f1b6 : SUCCESS in 8m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a6ff129e9f5f47ccb98405d73b4d4ded : SUCCESS in 4m 45s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/bcca0db70a8c4bf08eee41add2d51ac0 : SUCCESS in 13m 40s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/4b4a31f7a8864953b1f6d43cf283ac26 : SUCCESS in 7m 10s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/66c440f3805b48f78ae59db408cfcf1d : SUCCESS in 52m 41s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/55b7919abe4a43ff81248e8a03528aa4 : SUCCESS in 43m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4778631c7def45ba800dbad7522d9a3f : SUCCESS in 39m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/3e5bda970c374f7391963aeba5bcf927 : SUCCESS in 25m 54s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/226146afe0244a798c670a667086e1f0 : SUCCESS in 3m 36s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2a5f28c326c44bf9b38eb459a96df21b : SUCCESS in 18m 14s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/979a377a1c28419cb529562a4884a71c : SUCCESS in 35m 39s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/aa170eeee18d42d18c785baa3004591a : SUCCESS in 1h 01m 05s","accounts_in_message":[],"_revision_number":4},{"id":"718349defc66ac5963024221efb8e4a41e815e0e","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-09 05:35:53.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/eb60064297a84bcaa07af2d37e05b9b3\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/cea2f185b501461f873a4bcdc3045fc1 : SUCCESS in 1h 08m 06s","accounts_in_message":[],"_revision_number":4},{"id":"47473adca6581b50f290444e5beeb92c71e394b8","author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"date":"2025-10-08 22:05:06.000000000","message":"Patch Set 4: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"fe10398c4f83dafc36f7f50223a8f2f334e4e57a","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-10-09 00:17:22.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"ae7093d60301a1fdf965587a294e7c130d1bd035","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-10-13 16:55:52.000000000","message":"Patch Set 4: Code-Review-1\n\n(8 comments)","accounts_in_message":[],"_revision_number":4},{"id":"776f05e7ecedb5c08d6c30f267fce4d8959be96e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-02-18 01:45:36.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"0d47f5e5b40870f84e7ed6d9a919743d1ad2801c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-18 02:55:58.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7369aaa4b28941dfaa5979b809a5d995\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e86d09e3f53a46a8a81e828dcc2c21f5 : SUCCESS in 10m 53s\n- grenade https://zuul.opendev.org/t/openstack/build/7c12f7302fc64222899e2b16660eb508 : SUCCESS in 1h 00m 05s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/963a38ff927146068f237ed77adb89a1 : SUCCESS in 1h 04m 31s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d7bfa233e2f64ee0bb81181aa5768b44 : SUCCESS in 59m 43s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f66928ef562345679961990fef058d24 : SUCCESS in 1h 00m 28s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9279d974b686414fbac6ba84b0becc36 : SUCCESS in 16m 49s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1a70ea6b26ba4ceabfb47cc2dac5116c : SUCCESS in 17m 54s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/614378fafc984ecd80d3ae264cfc1e59 : SUCCESS in 20m 39s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a88b8ab991a54e729b733c3b00e9ed54 : SUCCESS in 6m 11s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/1d5b3ee14ee44ede8ebfee2799de93da : SUCCESS in 17m 38s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/b71683f495674d8395057d03672ddcf5 : SUCCESS in 10m 14s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/744b98f169f543edb61d7a89f5a268b7 : SUCCESS in 27m 20s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/3e0d51aac87f48aea829e94339bd237b : SUCCESS in 13m 43s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/57c44cede723432493dd0388f018888d : SUCCESS in 12m 58s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3a394979547f451b837b393c80550521 : SUCCESS in 14m 38s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/05c22ffa1a6642d0857f73e6119a1556 : SUCCESS in 15m 34s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/8498a71c64904fed97db6edf82207e92 : SUCCESS in 7m 49s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2d0297cea5344c7791040144c06c7d99 : SUCCESS in 16m 53s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/26777b176fb0496994891c8c591c9eee : SUCCESS in 7m 50s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e7ca2bcab8a2465eb517a0cbe071e27f : SUCCESS in 38m 19s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/95934a99cd22478db7ec576f2aeee24b : SUCCESS in 57m 06s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e81e7d5c19344d0dbd7b7bbe21ba27a3 : SUCCESS in 55m 28s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/215783939492404cab3787bd766c276e : SUCCESS in 12m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4538325521164c1fabd1bbbebec825c7 : SUCCESS in 4m 04s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/1e130f8574994911b5e3853f2cd0d30c : SUCCESS in 19m 50s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/fa137de57ddb4d3f8e01e4de385e511b : SUCCESS in 51m 07s","accounts_in_message":[],"_revision_number":5},{"id":"5259bfc0df237722ee12b98bae32d8ec31c7579a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-18 04:25:18.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/532d0f67cfd44e5b87433155aecfba68\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/f79d0eb9b6b34899b34a7a548aaee9a6 : SUCCESS in 2h 37m 41s","accounts_in_message":[],"_revision_number":5},{"id":"28158e3762d87462f7ea7466cc95571083b4c4d4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-04-07 05:01:51.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":6},{"id":"037db1481fcbb3669fccb5b70fcb8d9a78113f15","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-07 05:32:11.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/38f537956f134711bc08034e447c5501\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/59098b3c66a141e78ec2b320a31e20b9 : SUCCESS in 27m 54s","accounts_in_message":[],"_revision_number":6},{"id":"b05654724672bc487f7db65e74294041cec379c0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-07 06:08:12.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e9c4e7d41d7540f997b6d579135e3d8c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/71c1ea7f36614ccea612fbe1648a8d80 : SUCCESS in 5m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/0cde54608ab245a691e131dfd69effc4 : SUCCESS in 32m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/51d868ee46714fd9bb4bb4e0badcc297 : SUCCESS in 1h 03m 34s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/4b33887731fe4b57a5cadc6407296615 : SUCCESS in 42m 59s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/931eb74ad86d465f920269a0a5a72b39 : SUCCESS in 44m 18s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9dee65b1c1844626bd55efcfb11b79fd : SUCCESS in 19m 52s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3c97880692aa4bac8f8f7415628994ae : SUCCESS in 19m 48s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/117bb33fc7884e068e098d2bd538752d : SUCCESS in 10m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/175ec5b3e24d467284161d88e057d77a : SUCCESS in 4m 59s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0513b084e1f840b18f4b89ab86017813 : SUCCESS in 25m 11s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/8fb302a799f242a094e4f91ab24d13e6 : SUCCESS in 18m 34s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e3f1a472309347bf94d0a1d5263dded3 : SUCCESS in 11m 01s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/f4fa4da27273402fa325a1ab6410e77b : SUCCESS in 23m 42s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/41c794ea46774999b92719b64e5b7dc8 : SUCCESS in 12m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7a96cf896fc947c3a1e49916f4f77529 : SUCCESS in 14m 24s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/cf58ae4d8d4c4d17a9d97326ea57394b : SUCCESS in 9m 02s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/8b789884e81346a6b2cbde53b34ac86c : SUCCESS in 6m 25s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/090fc33162314a3399cd0ace25a9eea2 : SUCCESS in 9m 05s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/e3a4c8ebd4f946e993bbac4bf456ef66 : SUCCESS in 8m 21s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b5a7b87184d445ae9bb53e361badd7e8 : SUCCESS in 47m 17s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d89d759116e44187b3a7f1948f509206 : SUCCESS in 21m 39s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/904c07c0b70343948d7183bbdf38571d : SUCCESS in 26m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4304e2715fd34cc98e0e8bb48af4054c : SUCCESS in 20m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0eb05486b7d746c1a8fb5c8058ab08d9 : SUCCESS in 5m 45s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/117f44a2a60e4fbda10b4c3f391be6ca : SUCCESS in 9m 04s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/bcf7fc24a248421784c8b510b0244b87 : SUCCESS in 42m 38s","accounts_in_message":[],"_revision_number":6},{"id":"d2e48eb10299db8c662e54299e0649ac21d2d4a5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-01 08:21:52.000000000","message":"Uploaded patch set 7: Patch Set 6 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"ed22b5decb86e47b1b20394eeef3a781c08dd5f4","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 08:56:24.000000000","message":"Patch Set 7:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d516b24a17bb4533a7571caf441aab27\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/0559ae4009d747c89bc01cf3ccd4f5fe : SUCCESS in 32m 21s","accounts_in_message":[],"_revision_number":7},{"id":"840269364dde22ae8761b372a95f595fe2327a99","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 09:29:43.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9788f9462c9940a19144a71d23ed68fc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/20092126d48d4a41b4731c842d94ccc2 : SUCCESS in 5m 33s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/bfc6f76501b3449cb7e192127280353c : SUCCESS in 3m 54s\n- grenade https://zuul.opendev.org/t/openstack/build/e1416cccc258484fb926afa99d7a10a3 : SUCCESS in 51m 59s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e63fe03c7b4e4e119fd8c1576448fc06 : SUCCESS in 39m 49s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/00a8aff46cba42789ff910b9537e554c : SUCCESS in 40m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c38844758012461484b3bf6d105af416 : SUCCESS in 33m 15s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4a6d5423d74b46c6b913e2c7f4ecad33 : SUCCESS in 16m 50s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0fdf86de53454d5d943001a9a1320139 : SUCCESS in 18m 17s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/124b2a6e39924814ad9348ce2eef4a20 : SUCCESS in 21m 09s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/25b765dea6614841a092cac361314950 : SUCCESS in 6m 43s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8565a52243784d2a8659bb556ca89255 : SUCCESS in 26m 36s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/2f0a99145bd043ef9044cf9f18c1a8ad : SUCCESS in 13m 40s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5db4adb1e7b04425a614459c15566e1d : SUCCESS in 21m 58s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/8dd18a339e344172a3e4e87ea6bcc52c : SUCCESS in 19m 27s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/ef442cd889f343578abbee7c1c310512 : SUCCESS in 10m 51s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3ff6bfeb450041e2b1e3ff2f868ba09b : SUCCESS in 16m 17s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/9984220f3bfe4f03a465b5382c2f7b87 : SUCCESS in 11m 12s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/db947b50640240b19432c49c67757f18 : SUCCESS in 6m 40s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/f79ede3f16cf401ca6d828ab56686373 : SUCCESS in 16m 02s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/8040160550294710aa20d612c1dcf50a : SUCCESS in 6m 56s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/91198b09391247648f8ba0aff488a75c : SUCCESS in 1h 01m 30s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a4ee69d6e54941a199f5f30741779d56 : SUCCESS in 52m 32s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/efed557aff014db8beee98a324b544a3 : SUCCESS in 54m 36s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/cb5c2d8611144e02be6e9430a63e39aa : SUCCESS in 24m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/10805fe3cdde498597386d93e5c23d34 : SUCCESS in 4m 14s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/451feed040e34f56a64fa7a54af1bff7 : SUCCESS in 19m 05s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f388f46313864ddfaaa993aab013d70c : SUCCESS in 31m 19s","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"0fea3cf886a4228aa77f3000e559d109128ebeae","revisions":{"7c58c3d50a24946938d5d3633d7cdee1db4a51ca":{"kind":"REWORK","_number":1,"created":"2025-07-17 05:20:21.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/63/955263/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/63/955263/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/63/955263/1"}}},"commit":{"parents":[{"commit":"8a8dbe8d5b54cdacd35bc08c767dfbd20a8892a5","subject":"ring: Introduce a v2 ring format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8a8dbe8d5b54cdacd35bc08c767dfbd20a8892a5"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"subject":"ringbuilder cli: better track different command types","message":"ringbuilder cli: better track different command types\n\nThere are different swift-ring-builder command types. Some that require\na ring path instead of a builder, some can be run without a builder\npresent and others are simply readonly to the builder file.\n\nFurther, the ringbuilder cli will always attempt to write a backup dir\neven if a command doesn\u0027t need it. Currently this is all handled by\nstatic lists hardcoded in the code itself.\nThis patch however adds some CommandDecorator functions that can be\napplied to command methods to categorise them, eg:\n\n   @staticmethod\n   @CommandDecorator.readonly\n   @CommandDecorator.ring_command\n   @CommandDecorator.builder_exempt\n   def version():\n\nThis is a good example of one command that is actually in all\ncategories.\n\nThese decorators will add the command to a particular dictionary that\ncan be accessed from the Commands class directly.\nThis way the ringbuilder code can just ask something like:\n\n   if command not in Commands.read_only_commands:\n     \u003cmake the backup dir\u003e\n\nSigned-off-by: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7c58c3d50a24946938d5d3633d7cdee1db4a51ca"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7c58c3d50a24946938d5d3633d7cdee1db4a51ca"}]},"branch":"refs/heads/master"},"4dc8e910d98b0287783444dfefa11b000e87e606":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2025-07-22 07:01:07.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/63/955263/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/63/955263/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/63/955263/2"}}},"commit":{"parents":[{"commit":"ae062f8b09aed2f7bad9581396607045ea217fa8","subject":"ring: Introduce a v2 ring format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ae062f8b09aed2f7bad9581396607045ea217fa8"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-22 04:32:45.000000000","tz":600},"subject":"ringbuilder cli: better track different command types","message":"ringbuilder cli: better track different command types\n\nThere are different swift-ring-builder command types. Some that require\na ring path instead of a builder, some can be run without a builder\npresent and others are simply readonly to the builder file.\n\nFurther, the ringbuilder cli will always attempt to write a backup dir\neven if a command doesn\u0027t need it. Currently this is all handled by\nstatic lists hardcoded in the code itself.\nThis patch however adds some CommandDecorator functions that can be\napplied to command methods to categorise them, eg:\n\n   @staticmethod\n   @CommandDecorator.readonly\n   @CommandDecorator.ring_command\n   @CommandDecorator.builder_exempt\n   def version():\n\nThis is a good example of one command that is actually in all\ncategories.\n\nThese decorators will add the command to a particular dictionary that\ncan be accessed from the Commands class directly.\nThis way the ringbuilder code can just ask something like:\n\n   if command not in Commands.read_only_commands:\n     \u003cmake the backup dir\u003e\n\nSigned-off-by: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4dc8e910d98b0287783444dfefa11b000e87e606"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4dc8e910d98b0287783444dfefa11b000e87e606"}]},"branch":"refs/heads/master"},"0bdc807484e0c5b8089c1012196357dd8df28197":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2025-08-13 22:59:15.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/63/955263/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/63/955263/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/63/955263/3"}}},"commit":{"parents":[{"commit":"bdb052b59b6b36ac57792248a637e81cd973bf95","subject":"Merge \"ssync-receiver: terminate session if subreq read times out\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bdb052b59b6b36ac57792248a637e81cd973bf95"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-08-13 07:46:55.000000000","tz":600},"subject":"ringbuilder cli: better track different command types","message":"ringbuilder cli: better track different command types\n\nThere are different swift-ring-builder command types. Some that require\na ring path instead of a builder, some can be run without a builder\npresent and others are simply readonly to the builder file.\n\nFurther, the ringbuilder cli will always attempt to write a backup dir\neven if a command doesn\u0027t need it. Currently this is all handled by\nstatic lists hardcoded in the code itself.\nThis patch however adds some CommandDecorator functions that can be\napplied to command methods to categorise them, eg:\n\n   @staticmethod\n   @CommandDecorator.readonly\n   @CommandDecorator.ring_command\n   @CommandDecorator.builder_exempt\n   def version():\n\nThis is a good example of one command that is actually in all\ncategories.\n\nThese decorators will add the command to a particular dictionary that\ncan be accessed from the Commands class directly.\nThis way the ringbuilder code can just ask something like:\n\n   if command not in Commands.read_only_commands:\n     \u003cmake the backup dir\u003e\n\nSigned-off-by: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0bdc807484e0c5b8089c1012196357dd8df28197"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0bdc807484e0c5b8089c1012196357dd8df28197"}]},"branch":"refs/heads/master"},"0897bc57e0bfc031b78f4beabe30a942b15474bf":{"kind":"REWORK","_number":4,"created":"2025-08-27 07:54:45.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/63/955263/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/63/955263/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/63/955263/4"}}},"commit":{"parents":[{"commit":"bdb052b59b6b36ac57792248a637e81cd973bf95","subject":"Merge \"ssync-receiver: terminate session if subreq read times out\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bdb052b59b6b36ac57792248a637e81cd973bf95"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-08-26 04:27:55.000000000","tz":600},"subject":"ringbuilder cli: better track different command types","message":"ringbuilder cli: better track different command types\n\nThere are different swift-ring-builder command types. Some that require\na ring path instead of a builder, some can be run without a builder\npresent and others are simply readonly to the builder file.\n\nFurther, the ringbuilder cli will always attempt to write a backup dir\neven if a command doesn\u0027t need it. Currently this is all handled by\nstatic lists hardcoded in the code itself.\nThis patch however adds some CommandDecorator functions that can be\napplied to command methods to categorise them, eg:\n\n   @staticmethod\n   @CommandDecorator.readonly\n   @CommandDecorator.ring_command\n   @CommandDecorator.builder_exempt\n   def version():\n\nThis is a good example of one command that is actually in all\ncategories.\n\nThese decorators will add the command to a particular dictionary that\ncan be accessed from the Commands class directly.\nThis way the ringbuilder code can just ask something like:\n\n   if command not in Commands.read_only_commands:\n     \u003cmake the backup dir\u003e\n\nDrive-by: the create subcommand was creating the backup directory, even\nthough that is handled in the ringbuilder cli main code. So removed the\nextra backup dir creation from create.\n\nSigned-off-by: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0897bc57e0bfc031b78f4beabe30a942b15474bf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0897bc57e0bfc031b78f4beabe30a942b15474bf"}]},"branch":"refs/heads/master"},"27cd4892c2eae281883c49ced82f6626df578455":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2026-02-18 01:45:36.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/63/955263/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/63/955263/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/63/955263/5"}}},"commit":{"parents":[{"commit":"2c980ac94682e8baed89c7f3c3b5af824514e8c3","subject":"Merge \"Improve relinker test assertions\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2c980ac94682e8baed89c7f3c3b5af824514e8c3"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2026-02-18 01:37:57.000000000","tz":660},"subject":"ringbuilder cli: better track different command types","message":"ringbuilder cli: better track different command types\n\nThere are different swift-ring-builder command types. Some that require\na ring path instead of a builder, some can be run without a builder\npresent and others are simply readonly to the builder file.\n\nFurther, the ringbuilder cli will always attempt to write a backup dir\neven if a command doesn\u0027t need it. Currently this is all handled by\nstatic lists hardcoded in the code itself.\nThis patch however adds some CommandDecorator functions that can be\napplied to command methods to categorise them, eg:\n\n   @staticmethod\n   @CommandDecorator.readonly\n   @CommandDecorator.ring_command\n   @CommandDecorator.builder_exempt\n   def version():\n\nThis is a good example of one command that is actually in all\ncategories.\n\nThese decorators will add the command to a particular dictionary that\ncan be accessed from the Commands class directly.\nThis way the ringbuilder code can just ask something like:\n\n   if command not in Commands.read_only_commands:\n     \u003cmake the backup dir\u003e\n\nDrive-by: the create subcommand was creating the backup directory, even\nthough that is handled in the ringbuilder cli main code. So removed the\nextra backup dir creation from create.\n\nSigned-off-by: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/27cd4892c2eae281883c49ced82f6626df578455"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/27cd4892c2eae281883c49ced82f6626df578455"}]},"branch":"refs/heads/master"},"c297f2e6345c58521d5c4998e87354433dd6b7f3":{"kind":"REWORK","_number":6,"created":"2026-04-07 05:01:51.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/63/955263/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/63/955263/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/63/955263/6"}}},"commit":{"parents":[{"commit":"2c980ac94682e8baed89c7f3c3b5af824514e8c3","subject":"Merge \"Improve relinker test assertions\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2c980ac94682e8baed89c7f3c3b5af824514e8c3"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2026-03-30 03:10:45.000000000","tz":660},"subject":"ringbuilder cli: better track different command types","message":"ringbuilder cli: better track different command types\n\nThere are different swift-ring-builder command types. Some that require\na ring path instead of a builder, some can be run without a builder\npresent and others are simply readonly to the builder file.\n\nFurther, the ringbuilder cli will always attempt to write a backup dir\neven if a command doesn\u0027t need it. Currently this is all handled by\nstatic lists hardcoded in the code itself.\nThis patch however adds some CommandDecorator functions that can be\napplied to command methods to categorise them, eg:\n\n   @staticmethod\n   @CommandDecorator.readonly\n   @CommandDecorator.ring_command\n   @CommandDecorator.builder_exempt\n   def version():\n\nThis is a good example of one command that is actually in all\ncategories.\n\nThese decorators will add the command to a particular dictionary that\ncan be accessed from the Commands class directly.\nThis way the ringbuilder code can just ask something like:\n\n   if command not in Commands.read_only_commands:\n     \u003cmake the backup dir\u003e\n\nDrive-by: the create subcommand was creating the backup directory, even\nthough that is handled in the ringbuilder cli main code. So removed the\nextra backup dir creation from create.\n\nSigned-off-by: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c297f2e6345c58521d5c4998e87354433dd6b7f3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c297f2e6345c58521d5c4998e87354433dd6b7f3"}]},"branch":"refs/heads/master"},"0fea3cf886a4228aa77f3000e559d109128ebeae":{"kind":"TRIVIAL_REBASE","_number":7,"created":"2026-06-01 08:21:52.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/63/955263/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/63/955263/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/63/955263/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/63/955263/7"}}},"commit":{"parents":[{"commit":"18506712ca4cf0596398a8347a30f6bed08eaf7f","subject":"Merge \"Harden pickle unmarshalling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/18506712ca4cf0596398a8347a30f6bed08eaf7f"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-07-17 05:11:35.000000000","tz":600},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-05-31 14:23:39.000000000","tz":120},"subject":"ringbuilder cli: better track different command types","message":"ringbuilder cli: better track different command types\n\nThere are different swift-ring-builder command types. Some that require\na ring path instead of a builder, some can be run without a builder\npresent and others are simply readonly to the builder file.\n\nFurther, the ringbuilder cli will always attempt to write a backup dir\neven if a command doesn\u0027t need it. Currently this is all handled by\nstatic lists hardcoded in the code itself.\nThis patch however adds some CommandDecorator functions that can be\napplied to command methods to categorise them, eg:\n\n   @staticmethod\n   @CommandDecorator.readonly\n   @CommandDecorator.ring_command\n   @CommandDecorator.builder_exempt\n   def version():\n\nThis is a good example of one command that is actually in all\ncategories.\n\nThese decorators will add the command to a particular dictionary that\ncan be accessed from the Commands class directly.\nThis way the ringbuilder code can just ask something like:\n\n   if command not in Commands.read_only_commands:\n     \u003cmake the backup dir\u003e\n\nDrive-by: the create subcommand was creating the backup directory, even\nthough that is handled in the ringbuilder cli main code. So removed the\nextra backup dir creation from create.\n\nSigned-off-by: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: Icda0fa5e6f4b6c4b1be75ce2eeb518665f5a0eb9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0fea3cf886a4228aa77f3000e559d109128ebeae"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0fea3cf886a4228aa77f3000e559d109128ebeae"}]},"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":""}}}]}
