)]}'
{"id":"openstack%2Fswift~975949","triplet_id":"openstack%2Fswift~master~I16315873828b1e6ad3fc3e59bea325b73a0843c7","project":"openstack/swift","branch":"master","topic":"tmp_token_labels","attention_set":{},"removed_from_attention_set":{"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2026-03-05 21:51:58.000000000","reason":"\u003cGERRIT_ACCOUNT_7233\u003e replied on the change","reason_account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"}},"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-03-29 23:48:54.000000000","reason":"Change was submitted"},"36606":{"account":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"last_update":"2026-03-29 23:48:54.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I16315873828b1e6ad3fc3e59bea325b73a0843c7","subject":"proxy_logging: use consistent labels for all statsd metrics","status":"MERGED","created":"2026-02-06 18:56:11.000000000","updated":"2026-03-29 23:50:48.000000000","submitted":"2026-03-29 23:48:54.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":26,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"975949-tmp_token_labels","meta_rev_id":"50307dce7a9929677b49c80bee3e2de98363a7ea","_number":975949,"virtual_id_number":975949,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-03-29 23:48:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"}],"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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":2,"date":"2026-03-29 22:37:25.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"}],"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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":1,"date":"2026-03-29 22:37:25.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-06 19:37:54.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":"2026-02-06 20:01: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":"REVIEWER"},{"updated":"2026-02-06 21:59:23.000000000","updated_by":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"reviewer":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"state":"CC"},{"updated":"2026-02-18 16:22:19.000000000","updated_by":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"reviewer":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"state":"REVIEWER"},{"updated":"2026-02-27 05:49:19.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"REVIEWER"}],"messages":[{"id":"5eba087dda993fe406a9b0463e076b2e31424508","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-06 18:56:11.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"2e0fb646fd2253574d82ceb03375cfb904799ac3","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-06 19:00:49.000000000","message":"Patch Set 1: Workflow-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"f79fc2c242c714f7ba91e0c529bd08864ff9e049","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-06 19:37:54.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5c7a2d0a05b84ab18e5fc02574ce4898\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3ee3a78d656a429283347c580eba5b7d : SUCCESS in 39m 36s","accounts_in_message":[],"_revision_number":1},{"id":"6ec1f3fdd33fe3f3cba422dc10a33fc33c228262","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-06 20:01:51.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/e5beca4b7b5e40878eb4bfd7a4664f81\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/07df1fc62df14a28bab17cb63bce94c8 : SUCCESS in 10m 40s\n- grenade https://zuul.opendev.org/t/openstack/build/ca13a2376af54c2f9dd6f5973c0b165f : SUCCESS in 1h 00m 34s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/8c0fcc2f7b1a499892654276590f1d33 : SUCCESS in 57m 06s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/61ac65eea3724e7ead8456b670f2d561 : SUCCESS in 59m 01s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b842976c53d2405584c14e552203c4bc : FAILURE in 45m 51s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/77fe59a7ee354ab19fbfa68bd0401603 : SUCCESS in 16m 01s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4509dc52108f4cc69c604574ea97ea49 : SUCCESS in 12m 51s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f094118b491d459b9cbf05fbd3c66cbf : SUCCESS in 16m 06s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1b29d19178d6410d80e8be2a0cdbc602 : SUCCESS in 4m 17s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/6be965efdbc14a0faa3a655ccea5d064 : SUCCESS in 23m 39s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/894b87bd7d9543bdacc17beec2ad7ea5 : SUCCESS in 25m 58s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/494b28750746411c89d97db8dbbc723b : SUCCESS in 13m 49s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/89b72ffe3c80407ab28f2fd5c9c5f585 : SUCCESS in 20m 58s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/6a0c644d5f834db08c7da6136e81b2f8 : SUCCESS in 14m 21s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/9dfe6978b9384fa188adb0a3bdadf4a9 : SUCCESS in 14m 29s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d5035ce10e174779ab09dd4f3f0b2643 : SUCCESS in 15m 41s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/bea77c78e460402082548fac5209933e : SUCCESS in 4m 34s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/3dd0566ba97d4bb4b9e7543ab5d94127 : SUCCESS in 19m 49s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/72ca49621f214654b0bdafe5bdae5e4b : SUCCESS in 4m 45s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/eef0db60e2c24ca2b1f89ada7e9cd95c : SUCCESS in 48m 35s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/65e82facec09411fbff806963cc042ea : SUCCESS in 51m 03s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/547213dac6254c3c8c164e6a02fa0ea6 : SUCCESS in 38m 53s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4fe54d72e7224f6f926b1ea0fd35c7db : SUCCESS in 20m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5e6a1c0face840c5bcbac52625273206 : SUCCESS in 3m 56s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d096cfa371ff4c34bb201ce19c3ea606 : SUCCESS in 15m 26s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/1cb3e8f1da7f43c99f7c8f66a2c77402 : FAILURE in 51m 22s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4b6f5ce82ca34aaa87e61f19e0ef2299 : SUCCESS in 57m 30s","accounts_in_message":[],"_revision_number":1},{"id":"7766860324ac81d0e91c3785f87d24fd16bc3a01","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-02-06 21:59:23.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"7cefa077f7fda7bf5eee0a3c0feff413f3a4e9c3","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-02-06 22:16:47.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"142ed64be9e63e89fe75945c960643ccbe244ddd","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-02-06 22:22:55.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"e25b5076a25fb4580215dc672ddf9d75508b5886","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-06 22:31:39.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3184600834414203af809f62241c7204\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/2f31c4b1daa34d769b6d5d752f173bdc : SUCCESS in 30m 17s","accounts_in_message":[],"_revision_number":1},{"id":"f8acd06c10ddefaf83ea44f1e46558f968e414a5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-06 23:12:57.000000000","message":"Patch Set 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/ebfcc5f6b570411e96e5d11d9fcc0ecb\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ba31c339596741a3b81d4327f110558e : SUCCESS in 8m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/7018158fd45b468c86700befe3827d61 : SUCCESS in 29m 40s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/90859405ac8c4019a7c462339d58e716 : SUCCESS in 32m 40s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c6285c421ea74f938be03d559b242e2d : SUCCESS in 51m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/593f4209847d4c7ca372b0b5f460e61d : FAILURE in 1h 03m 54s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/56c00d3134d448d7b20e564eb8fbe748 : SUCCESS in 10m 12s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a56d0869b2bf488781580e0f5067e950 : SUCCESS in 19m 10s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/18f6da4c9acf4813bb6768d21e0db6e4 : SUCCESS in 21m 22s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/cb5d500392544b919966175159560a6e : SUCCESS in 6m 33s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/47c4ff26eb2642d8a1b6abfd67ec3ecf : SUCCESS in 25m 48s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/1fcb76c6714f42df80783727614af13e : SUCCESS in 19m 41s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/31e463b9b004460e8a813e1a389d8beb : SUCCESS in 32m 14s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/4b58bc55401d47a4b5f3128e478187e7 : SUCCESS in 33m 15s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/cce9be003a714d4396c5bca0b937794e : SUCCESS in 14m 47s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/cc19d2f2f3904739b1c311fd4801018b : SUCCESS in 15m 20s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/beceb038085a40e0aa6addf54daa83c0 : SUCCESS in 14m 49s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6f1da10e950d4e85804b7479a2133732 : SUCCESS in 5m 59s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/7cdbe7259b2b4ac199dfcddb2a2ab84e : SUCCESS in 16m 20s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0b9fa0e1365a4196b5ae1a3a775b8d1d : SUCCESS in 8m 18s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/375267ee3822408b8e8140acc2b216ef : SUCCESS in 1h 03m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/0fc7a079580649a69f876698f040328a : SUCCESS in 49m 09s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/00bf84667f564d008860b132cfc138bc : SUCCESS in 56m 42s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/2d7b1438c2b84c76b2c7843c670e463d : SUCCESS in 28m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1593b232e02f4d85b7de55fa320c7ca4 : SUCCESS in 3m 57s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fd02a41ac09f48d28a58c4667a81e1fe : SUCCESS in 17m 33s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/2051a1f70d1648af99de0c81835f3789 : FAILURE in 43m 20s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5c9e9a653873435b9b62cc5f9110cd8d : SUCCESS in 1h 06m 59s","accounts_in_message":[],"_revision_number":1},{"id":"abb6c293225f7d28c58c73c4dd368087d92794ad","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-11 16:17:55.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":2},{"id":"7386fa3bde7a45251189caaeedcc82550d00d68f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-11 16:53:38.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/61c5d26cad0e4792978d3d4ea80653c0\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/a5858b9051a340b4a0243d0dc896494a : SUCCESS in 32m 49s","accounts_in_message":[],"_revision_number":2},{"id":"822b6cb194e79f919ce15d6e3d651b99d43eab70","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-11 17:25:39.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/0e8dac56278242d7a2b3b72a918310a9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/10ccf81637b34d9484f75305f389e7ec : SUCCESS in 7m 33s\n- grenade https://zuul.opendev.org/t/openstack/build/6bf0493727104ef1b3ce02008f545c5f : SUCCESS in 59m 37s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/f5b5c05b46ca46248720f114e565513f : SUCCESS in 58m 15s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/7c8e4c849e934bf4a54612b0333e5c64 : SUCCESS in 54m 37s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d3c44bb9e4a5427dba0d821835e91b21 : SUCCESS in 40m 08s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d66129fd4d44419eaea8c3c0f1599558 : SUCCESS in 17m 46s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fa76952cab8a4b4e85123b0f7214cf18 : SUCCESS in 20m 20s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4f63f64b999a489d8b39ef3d9f4d7d8a : SUCCESS in 21m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/66992fe221644e88980197e185028127 : SUCCESS in 7m 16s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4d2e27d008874e62b490d33ff8283208 : SUCCESS in 13m 57s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/c36c9590196d4b9a8302e3e222d98f3e : SUCCESS in 19m 44s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/8acbfd13fa6a49c39f86b61a60476eea : SUCCESS in 27m 43s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/95d68c2c53b749ca9646c9b3fc724dfe : SUCCESS in 23m 39s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/4ab6e4e2176a468eb1d26c855e5e77ee : SUCCESS in 10m 19s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/a51b3c008a4b4a2c9fccc3b1c3bfe5ea : SUCCESS in 16m 17s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7332632426d54501ae4846e8e7ba148e : SUCCESS in 8m 42s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6ec34afc81dc47af9e0346d81183f410 : SUCCESS in 6m 33s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/99a59d9fc0454bd2b25c97caa3891290 : SUCCESS in 18m 16s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/cd8594b25113421c8195fbff2335b12b : SUCCESS in 7m 22s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/2fac7303a5b14c9eb44081f25b837e04 : SUCCESS in 57m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9609d8e52b9344399ab4493f051e25ba : SUCCESS in 52m 29s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b67c11a4d2cc47ceb7fb75d97d6c7a5f : SUCCESS in 53m 50s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/93939e95d3754f5580cbff559c2947c3 : SUCCESS in 10m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0c2dc669c257407197d8c9a2c2ba91d9 : SUCCESS in 2m 39s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/1ac265e598f842a2ace9056453857a6a : SUCCESS in 25m 51s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/97c143eec7044639a5e9dc2550078e9c : FAILURE in 47m 29s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/30a8a5ed5f6c4fca95fde0f35fe1e433 : SUCCESS in 58m 58s","accounts_in_message":[],"_revision_number":2},{"id":"625b6727183761339ff6f31e6256783d7ab333a8","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-02-11 22:23:50.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"45003675f123d37e4caf6db58e0dcd335cfc2d10","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-12 17:10:29.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"d081073f13b54f40b37025ca85ae9cff88f9076f","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-02-12 20:16:42.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"6d3c39876e32f20af4353521d29f93c6af39442b","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-02-13 16:16:48.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"9f92859102a915005bea6dca8ab9e67fd70971b1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-17 15:17:05.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"337952df737bfa4e28d9d67c99c898471a6c62b5","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-17 15:25:00.000000000","message":"Patch Set 3:\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"d9b5e5f218852bb31504b48093d62666859e2a89","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-17 17:14:16.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1230462a8543462bbdd833efa012482c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0ecdaa13f0ba4f6d985df5a4c285472a : SUCCESS in 9m 58s\n- grenade https://zuul.opendev.org/t/openstack/build/ad93ceaeb57c450eb06829c61c0b8d5c : SUCCESS in 38m 38s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c19303af76b742bfb4ffa09e54388eb6 : SUCCESS in 1h 03m 40s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d4f5d7c6b9964bb4afb7bd4d9d035c02 : SUCCESS in 36m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/079fcbb180594e4da809665253950fd1 : SUCCESS in 1h 16m 54s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1c7d566848b94544bc179ad828af4ca7 : SUCCESS in 20m 53s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5c621d660f2e4f9bbbb59d8ba64de19f : SUCCESS in 21m 01s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0c2c1b6aeb74416094f4935f47398e23 : SUCCESS in 11m 08s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7e917ed0435d4c94875a2033a7adeae8 : SUCCESS in 8m 10s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e1edced2af4e454887e82810e154b95e : SUCCESS in 10m 10s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/b076f485a7ac4a76a6ee1a9542e1e3fc : SUCCESS in 19m 56s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/a4245b002e944d7e8fe28063509d472f : SUCCESS in 24m 04s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/4aca99b26240499b9ab0b8df349d2fdb : SUCCESS in 14m 10s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/995028c11f1249b1917745d432044915 : SUCCESS in 15m 16s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/8f3ba5480d0640879b9102ec83232942 : SUCCESS in 16m 00s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/9f340eb96f9d4aa78812987883f57dd4 : SUCCESS in 10m 41s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/15ef46af9f694bedbcd3e07a776185c1 : SUCCESS in 7m 00s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b3438f5b93b14012a79e95bccce5a6a1 : SUCCESS in 15m 52s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/599dee547bfc49568da2bd8a39d4cb4d : SUCCESS in 5m 14s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/72a2dab49cfb4b059eaf8f2efb147b3f : SUCCESS in 57m 01s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2c0e8bae85184fe785286dccdaef68c9 : SUCCESS in 38m 33s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e8042e29ef6c4dbe80ae37937b2ac90a : SUCCESS in 1h 02m 27s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f995bd3a4b4844869c6bad009f08cfe6 : SUCCESS in 31m 47s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f6d8b1ffc3974401aaef9660cbb5909f : SUCCESS in 4m 08s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e1b51cf048eb449fab59f3b0e1493b01 : SUCCESS in 20m 27s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6afad853306a4594a1011be629af585b : SUCCESS in 1h 00m 12s","accounts_in_message":[],"_revision_number":3},{"id":"3f502c999401282e0ddbc69f708a8363456546bf","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-17 18:14:22.000000000","message":"Patch Set 3:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fe7a62b713ce487495d063cde4d0bf6d\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/4389472cc10c4afd86147c50b866a543 : NODE_FAILURE Node(set) request 114d79950ef4461fa33e56ccda70b31e failed in 0s","accounts_in_message":[],"_revision_number":3},{"id":"4f308293b8cf4e0fffb89b80e2f53012fdc55d59","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-02-18 16:22:19.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"410ee06006d9b472904a7d0a6a5aa9aa960f0dac","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-02-27 05:49:19.000000000","message":"Patch Set 3: Code-Review-1\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"1c2d59f485232e067bb679624b53c2c324261516","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-03-02 20:35:59.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"898b55df4097638ab5a7451c330ff692ff957b7d","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-03-02 22:25:05.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"a8d266bba27411a885a346dd216cf436acc0ffb3","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2026-03-02 22:29:05.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"a5c7d3205003c74937ee3d71b44e8dca6b43db02","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-03 18:10:51.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review+1, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"1f5411b10d2e4d2c375214505d53a0de516f8ead","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 18:44:56.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/920f03bb598f46aa849171003b2c5070\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/818681707f2d4d5284aaa849475a0828 : SUCCESS in 32m 22s","accounts_in_message":[],"_revision_number":4},{"id":"eba2e0fc6fc7e2d52f35a53f9bcb94fa1f9e288e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 19:16:58.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2ec03b4580214f4db1a17f18481801d9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/93e1655d4ec44de096a9a84202d37a95 : SUCCESS in 5m 31s\n- grenade https://zuul.opendev.org/t/openstack/build/b90df7d2fbdd4451a712d0d1813316dc : SUCCESS in 57m 10s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e578a1cb84a8407e81076e7cbf8f9f68 : SUCCESS in 31m 14s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ad9dab80093c4994a030a1fa38c198c2 : SUCCESS in 59m 01s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/35c8e52a1667490e8a07c01da1c499e2 : SUCCESS in 1h 01m 02s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/332fde9ef80249baa63d50e34e5a76e7 : SUCCESS in 19m 28s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5d141ff0499c4728bd4574f3474591ce : SUCCESS in 15m 41s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0a35d16ef1fb4b899828247d58e1bfe6 : SUCCESS in 19m 32s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/16cad2fe3a6b4f87b73ef5fe0bb10b4a : SUCCESS in 5m 04s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/6c23bcbf31024459979622f0e70a1201 : SUCCESS in 12m 01s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/9c75502e3e174c0c85c468d13b9c6ae2 : SUCCESS in 11m 37s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/8b349b8c80974cc7a8fb83ccd24c34cc : SUCCESS in 28m 40s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/08879dd95e1b47e683e60c1a0af28b82 : SUCCESS in 20m 00s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/3bf885b0068d421ab1c97b0f72b25ad3 : SUCCESS in 7m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/8e58e7a97d4a4d7d8706018615e16b99 : SUCCESS in 14m 31s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0eaee895cf3349ed8c39e526e7da16cf : SUCCESS in 9m 51s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/720c8ee194a64d1ea073e6fb8ddf389c : SUCCESS in 6m 30s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2a82d251425d4d89bedf72199af69e18 : SUCCESS in 7m 48s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/62ec162662d74e9e8d26a97c29d7d2f0 : SUCCESS in 7m 44s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/ef0397db997f48dcab65106e9f9178cb : SUCCESS in 44m 40s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/857b6936bb674e79b91d5a110ec2fd5d : SUCCESS in 1h 00m 09s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/69a85c2d0b1c4d1b8ccb7c4f88432c1e : SUCCESS in 51m 22s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/9b1760680e484e9fa2746210bf079d57 : SUCCESS in 20m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6430cf11b8274a709137d6e0a545c454 : SUCCESS in 3m 26s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/daead5ab66a942a18650816661564f5e : SUCCESS in 8m 51s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c615a429531c40fdaacd347fa895e01b : SUCCESS in 57m 13s","accounts_in_message":[],"_revision_number":4},{"id":"0c8cdc9335a3af858cebfc527cc4bcca6abce79d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-05 17:12:59.000000000","message":"Uploaded patch set 5: Commit message was updated.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"d886713070a1c71fca0d9629d8a6159e199ea932","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-05 17:47:21.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bb1e4590d5814dd7be965e9d94629761\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/ec0daa44425b4fd9b2561a3296c54463 : SUCCESS in 32m 21s","accounts_in_message":[],"_revision_number":5},{"id":"0390aef7194d57f1d31c8173a8cfa5f0ff45bf16","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-05 18:21:22.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ef08c9fe1f55402d84034c18be6ddec8\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/83878d4707da415db3d6b703e749468d : SUCCESS in 10m 26s\n- grenade https://zuul.opendev.org/t/openstack/build/fb17da90a16f4dc3ad97343ce9b99784 : SUCCESS in 59m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5f0b251fb1444f17ae0cc4e2be090cd3 : SUCCESS in 37m 58s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/af154cef5be74f1f967fac6469e74d10 : SUCCESS in 41m 27s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/569efe6a85da4ea285bfb0660dc3c6ec : SUCCESS in 1h 03m 03s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b88fcad997724454b9a9142541f2eea4 : SUCCESS in 19m 57s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/394058ee29074c659bc7a4caaf818453 : SUCCESS in 11m 52s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bb89dc3a9e714a87a0ff1d1b39d669e3 : SUCCESS in 20m 00s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a894a952cf244c58bb6a8d74f79db0fc : SUCCESS in 6m 17s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/bab51abb36f74b6fbbf6bc7dae54d5e5 : SUCCESS in 20m 52s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/207bb90f73f941d488a59ef1d363ffbd : SUCCESS in 19m 28s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/e0a16f1bc9be4ca59e5dee6bf5bae692 : SUCCESS in 32m 29s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/47f39241b8154468a82719d787ffb529 : SUCCESS in 31m 08s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/7386fcab5b9f443cb0a22018b2a6e2ce : SUCCESS in 13m 49s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/01339e57558947a8ac9dd35a87bc5690 : SUCCESS in 13m 08s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/c589857e76464d1085c6658237ee618c : SUCCESS in 15m 37s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/66c9fa6959ee4e44ad687291e983f764 : SUCCESS in 6m 36s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/07f336a3d96a426aaaac5bc40584d86b : SUCCESS in 16m 07s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/765404fe346e494b99302007ba26877e : SUCCESS in 5m 40s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/9e373ec15faa473e95be71392a83bf57 : SUCCESS in 35m 05s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6671960a1a3a40e3b57b4a5e5bbe7031 : SUCCESS in 37m 14s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/6663f125d4c649cf878c03254a37914a : SUCCESS in 59m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/518c4388fbf14c8f9736f05869cac1f0 : SUCCESS in 12m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/93186ee99a474195b0b6baef2b4aa549 : SUCCESS in 2m 29s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/05653af476494ad983417d87dd46a01e : SUCCESS in 25m 58s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/41092e2b11c144b6aed387d39ba33e31 : SUCCESS in 56m 58s","accounts_in_message":[],"_revision_number":5},{"id":"6060127bc2d997d5daa8b9d014697f1dbb948382","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-03-05 21:51:58.000000000","message":"Patch Set 4: Code-Review+2\n\n(4 comments)","accounts_in_message":[],"_revision_number":4},{"id":"0139a5b3ac1e29c5e690ce5f3d79215421a68752","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-13 15:56:11.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":6},{"id":"da36a3e3205f541214b7fab5978e772d3f1d3dfd","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-13 16:45:58.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d7186ec76dc848e48c1075d0766d1cf3\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/f3e31c4069f347139703ab26959ed93d : SUCCESS in 36m 16s","accounts_in_message":[],"_revision_number":6},{"id":"f0e1b542e07cbf03c5dbb262c028659b52406555","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-13 17:11:39.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6b547c859cc844a3a24ecf579531617a\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e08487ce2fba427eb9f6f37af82159be : SUCCESS in 5m 29s\n- grenade https://zuul.opendev.org/t/openstack/build/79913091750f4dd2b0dc9edf83e1b583 : SUCCESS in 1h 00m 13s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3e4f29479ca044e7acbef02062da0244 : SUCCESS in 55m 42s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8f19bea2d46248a7ade4b7ee1fa3126f : SUCCESS in 1h 00m 16s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c1526388049442fe8ba89a1f5596d42f : SUCCESS in 51m 48s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a18bde483b4f49e3aa18eadcec8d5a3b : SUCCESS in 20m 22s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7ff5cc8105a444e28657a0ebc4dc7990 : SUCCESS in 19m 24s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f47336551e4b4a4f89cf265a7c78169a : SUCCESS in 21m 55s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/d0aa691b1c4b4965af8a782484cba81e : SUCCESS in 6m 03s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/78b97204e463447c96f372002a79bdd4 : SUCCESS in 26m 14s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/999b225865f6440bb42641a0484b8f19 : SUCCESS in 17m 57s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/b7b6a02ff08641899f7ab8b37ac7994d : SUCCESS in 14m 23s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/3acc8e5349114571bdbf9b3ccbdb2be8 : SUCCESS in 14m 12s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/fa63aaa1262b4d4da5e5ed5e3881026e : SUCCESS in 14m 41s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/ee5c9c5e8b764c5ebe66efdc5b9b9a5e : SUCCESS in 14m 50s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/4369993d523944f59638ceaf1c8e7f0b : SUCCESS in 16m 40s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/352e404787de4fb19e83edf082c61745 : SUCCESS in 4m 09s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/dbc50188bcb84e7eba619e94846d827d : SUCCESS in 14m 23s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/892f6cbe4d9849f19ec205bb5f31fb7e : SUCCESS in 10m 35s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e39d4bb13c3b4586ab09c71da4057b3c : SUCCESS in 55m 47s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a43198534f694b18bed7ca9422b03271 : SUCCESS in 36m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/bae4b031bf51455aadb58208652b8800 : SUCCESS in 47m 06s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/336071fd037148c3946f1a7b5f51d031 : SUCCESS in 17m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c044266370434e92a2eb7a82ca9d52ac : SUCCESS in 4m 08s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/867233ff132c4cfd87a9e7ee88bf8c1a : SUCCESS in 25m 36s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/93404640a77b437f9f2a2d5324535523 : SUCCESS in 1h 05m 01s","accounts_in_message":[],"_revision_number":6},{"id":"5ed37f2101568a5d40cb74c350607a05bc2e2dce","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-03-29 22:37:25.000000000","message":"Patch Set 6: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"45c3d1e80e826f9ea4c1d9c748b888bc9fb25ce2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-29 22:37:49.000000000","message":"Patch Set 6: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":6},{"id":"553eaa4031ea7ca940e295ca81ba0158270d73aa","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-29 23:48:54.000000000","message":"Patch Set 6: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e12e10e1f6554df7a110d80583e0f492\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8447c6ad90ff46aa9d538381d39b9763 : SUCCESS in 7m 33s\n- grenade https://zuul.opendev.org/t/openstack/build/94676f4f2ab44bb2930a7d7a5505ed22 : SUCCESS in 1h 02m 12s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/19f80b7d4a68450ca45a4e0e9988cb21 : SUCCESS in 34m 05s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/bfccf05c5bc54cf2b41234b73865c4cf : SUCCESS in 40m 32s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7ed1233cd6ae465eb14352b6ade6cf43 : SUCCESS in 1h 07m 56s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/3c379b2fb6e64a5ca7b5277b4111f636 : SUCCESS in 4m 24s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b7ba21c89fec4be097cc76f78ca7a843 : SUCCESS in 17m 15s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/99b81634e6024c979824dd3ea2f52b8b : SUCCESS in 8m 46s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/0dc7dd4a90a148bd9fb7bfbc9736e355 : SUCCESS in 27m 46s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/79b2eed9a854419db4171a99e6e87ee5 : SUCCESS in 21m 19s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/0999557ef6264a2dafeded36d13fee04 : SUCCESS in 7m 35s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/abe42f4b5ed34936af2cdbcad39f6339 : SUCCESS in 11m 26s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/da8c2b0e12e048c8a5787dedb2f29dfe : SUCCESS in 15m 50s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/895755307df748558a05645288a40bd8 : SUCCESS in 5m 52s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/c32ce88771f240909ff65bdecd16ead0 : SUCCESS in 11m 45s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/5511e2adf2e84a15b14de634d9de09aa : SUCCESS in 1h 03m 57s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7fe7a3f705ac41438c23411cf3ba960b : SUCCESS in 31m 14s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d07ef55cbfb547eebb5de465c84d5794 : SUCCESS in 57m 34s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/235690d79b514da78268e594a6c58b31 : SUCCESS in 12m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/71e900d6a11a471bb60a4841b9983a2b : SUCCESS in 3m 34s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/6c13d04eab3b48dca81d6dda2655ecd5 : SUCCESS in 25m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a8d508148eef400d95676b3dbea17fe2 : SUCCESS in 41m 32s","accounts_in_message":[],"_revision_number":6},{"id":"f164a2d872b8362b5c30a878f206ccd60c8383c5","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-29 23:48:54.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":6},{"id":"50307dce7a9929677b49c80bee3e2de98363a7ea","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-29 23:50:48.000000000","message":"Patch Set 6:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d636af6ea5564140b5c34d476e50b0cf\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a8c8fa0e27e64a188554935bb6d0897b : SUCCESS in 47s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/97ff35a0efc544e8b62115880129fb87 : SUCCESS in 1m 45s (non-voting)","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"c161834f3df6af4cce1ed7ba0715c0791d9651ec","revisions":{"01d3763074c589f54f05dd4cfa5a15e40ce0f12b":{"kind":"REWORK","_number":1,"created":"2026-02-06 18:56:11.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/49/975949/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/975949/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/975949/1"}}},"commit":{"parents":[{"commit":"7bf728b6198400aa2057bf42d34f434e6dc71407","subject":"direct_client.py: proxy app: assign timestamp in a single place","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7bf728b6198400aa2057bf42d34f434e6dc71407"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-03 14:50:41.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-06 18:55:50.000000000","tz":0},"subject":"proxy_logging: use consistent labels for all stasd metrics","message":"proxy_logging: use consistent labels for all stasd metrics\n\nThe proxy_logging middleware emits a number of labeled statsd metrics.\nPreviously, labels were inconsistent for metrics emitted for the\nsame request:\n\n* some metrics had a \u0027container\u0027 label derived from the\n  swift.backend_path whereas others had a \u0027container\u0027 label derived\n  from the original request path. These differ for some S3 API\n  requests.\n\n* some metrics for container requests had a \u0027policy\u0027 label whereas\n  other metrics did not.\n\nThis patch addresses these inconsistencies by ensuring that, for the\nsame request and proxy_logging middleware instance:\n\n* All \u0027container\u0027 labels are derived from the request path. The\n  swift.backend_path value in the request environ is never used to\n  derive label values.\n\n* For container requests, no metrics have the \u0027policy\u0027 label.\n\nThere may be more than one proxy_logging instances in the middleware\npipeline, typically close to the start of the pipeline (the leftmost\ninstance for logging client requests) and close to the end of the\npipeline (the rightmost instance for logging subrequests). The metrics\nthat these instances emit for the same request *may differ*. In\nparticular:\n\n* The leftmost instance will use the client request path to derive the\n  \u0027container\u0027 label. The rightmost instance will use the subrequest\n  path to derive the \u0027container\u0027 label. These may differ. For example,\n  while an S3 MPU part upload request is being handled, the leftmost\n  instance container label would be \u003cbucket\u003e while the righmtost\n  instance container label would be \u003cbucket\u003e+segments for the PUT\n  request.\n\n* The leftmost instance will use the client response status for the\n  \u0027status\u0027 label. The rightmost instance will use the subrequest\n  response status for the \u0027status\u0027 label. These may differ. For\n  example, the S3 API can translate a subrequest 201 status to a\n  client 200 status.\n\nSome unit tests changes warrant explanation:\n\n* PathRewritingApp: this is meant to simulate a middleware modifying\n  the swift subrequest path (for example, in the manner of S3 API\u0027s\n  multiupload controller). The path should not be reset after the\n  request has been handled; this was causing the swift.backend_path\n  environ value to be incorrect\n\n* test_log_msg_template_s3api: the statsd assertions are removed. The\n  test does not setup a pipeline with middlewares to populated the\n  account in base_labels, which is now required.  The test subject\n  matter is log_msg_template, and the statsd assertions are unrelated\n  and duplicate assertions in other more targeted tests.\n\nRelated-Change: Ideecd0aa58ddf091c9f25f15022a9066088f532b\nRelated-Change: I5a96626862644fe23a0d4bc53e85989770c8ceec\nChange-Id: I16315873828b1e6ad3fc3e59bea325b73a0843c7\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/01d3763074c589f54f05dd4cfa5a15e40ce0f12b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/01d3763074c589f54f05dd4cfa5a15e40ce0f12b"}]},"branch":"refs/heads/master"},"1b9208e09ba81b79a355b0dc9d502f805b545230":{"kind":"REWORK","_number":2,"created":"2026-02-11 16:17:55.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/49/975949/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/975949/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/975949/2"}}},"commit":{"parents":[{"commit":"7bf728b6198400aa2057bf42d34f434e6dc71407","subject":"direct_client.py: proxy app: assign timestamp in a single place","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7bf728b6198400aa2057bf42d34f434e6dc71407"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-03 14:50:41.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-11 16:12:43.000000000","tz":0},"subject":"WIP proxy_logging: use consistent labels for all stasd metrics","message":"WIP proxy_logging: use consistent labels for all stasd metrics\n\nTODO:\n* decide what to do when either left or right proxy-logging is not in\n the pipeline\n\nThe proxy_logging middleware emits a number of labeled statsd metrics.\nPreviously, labels were inconsistent for metrics emitted for the\nsame request:\n\n* some metrics had a \u0027container\u0027 label derived from the\n  swift.backend_path whereas others had a \u0027container\u0027 label derived\n  from the original request path. These differ for some S3 API\n  requests.\n\n* some metrics for container requests had a \u0027policy\u0027 label whereas\n  other metrics did not.\n\nThis patch addresses these inconsistencies by ensuring that, for the\nsame request and proxy_logging middleware instance:\n\n* All \u0027container\u0027 labels are derived from the request path. The\n  swift.backend_path value in the request environ is never used to\n  derive label values.\n\n* For container requests, no metrics have the \u0027policy\u0027 label.\n\nThere may be more than one proxy_logging instances in the middleware\npipeline, typically close to the start of the pipeline (the leftmost\ninstance for logging client requests) and close to the end of the\npipeline (the rightmost instance for logging subrequests). The metrics\nthat these instances emit for the same request *may differ*. In\nparticular:\n\n* The leftmost instance will use the client request path to derive the\n  \u0027container\u0027 label. The rightmost instance will use the subrequest\n  path to derive the \u0027container\u0027 label. These may differ. For example,\n  while an S3 MPU part upload request is being handled, the leftmost\n  instance container label would be \u003cbucket\u003e while the righmtost\n  instance container label would be \u003cbucket\u003e+segments for the PUT\n  request.\n\n* The leftmost instance will use the client response status for the\n  \u0027status\u0027 label. The rightmost instance will use the subrequest\n  response status for the \u0027status\u0027 label. These may differ. For\n  example, the S3 API can translate a subrequest 201 status to a\n  client 200 status.\n\nSome unit tests changes warrant explanation:\n\n* PathRewritingApp: this is meant to simulate a middleware modifying\n  the swift subrequest path (for example, in the manner of S3 API\u0027s\n  multiupload controller). The path should not be reset after the\n  request has been handled; this was causing the swift.backend_path\n  environ value to be incorrect\n\n* test_log_msg_template_s3api: the statsd assertions are removed. The\n  test does not setup a pipeline with middlewares to populated the\n  account in base_labels, which is now required.  The test subject\n  matter is log_msg_template, and the statsd assertions are unrelated\n  and duplicate assertions in other more targeted tests.\n\nRelated-Change: Ideecd0aa58ddf091c9f25f15022a9066088f532b\nRelated-Change: I5a96626862644fe23a0d4bc53e85989770c8ceec\nCloses-Bug: #2138371\nCloses-Bug: #2138370\nChange-Id: I16315873828b1e6ad3fc3e59bea325b73a0843c7\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1b9208e09ba81b79a355b0dc9d502f805b545230"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1b9208e09ba81b79a355b0dc9d502f805b545230"}]},"branch":"refs/heads/master"},"169a83ea4c0ee2ec30174380dd6bf4e698410110":{"kind":"REWORK","_number":3,"created":"2026-02-17 15:17:05.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/49/975949/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/975949/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/975949/3"}}},"commit":{"parents":[{"commit":"7bf728b6198400aa2057bf42d34f434e6dc71407","subject":"direct_client.py: proxy app: assign timestamp in a single place","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7bf728b6198400aa2057bf42d34f434e6dc71407"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-03 14:50:41.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-17 14:59:55.000000000","tz":0},"subject":"proxy_logging: use consistent labels for all stasd metrics","message":"proxy_logging: use consistent labels for all stasd metrics\n\nThe proxy_logging middleware emits a number of labeled statsd metrics.\nPreviously, labels were inconsistent for metrics emitted for the\nsame request:\n\n* some metrics had a \u0027container\u0027 label derived from the\n  swift.backend_path whereas others had a \u0027container\u0027 label derived\n  from the original request path. These differ for some S3 API\n  requests.\n\n* some metrics for container requests had a \u0027policy\u0027 label whereas\n  other metrics did not.\n\nThis patch addresses these inconsistencies by ensuring that, for the\nsame request and proxy_logging middleware instance:\n\n* All \u0027container\u0027 labels are derived from the request path. The\n  swift.backend_path value in the request environ is never used to\n  derive label values.\n\n* For container requests, no metrics have the \u0027policy\u0027 label.\n\nThere may be more than one proxy_logging instances in the middleware\npipeline, typically close to the start of the pipeline (the leftmost\ninstance for logging client requests) and close to the end of the\npipeline (the rightmost instance for logging subrequests). The metrics\nthat these instances emit for the same request *may differ*. In\nparticular:\n\n* The leftmost instance will use the client request path to derive the\n  \u0027container\u0027 label. The rightmost instance will use the subrequest\n  path to derive the \u0027container\u0027 label. These may differ. For example,\n  while an S3 MPU part upload request is being handled, the leftmost\n  instance container label would be \u003cbucket\u003e while the righmtost\n  instance container label would be \u003cbucket\u003e+segments for the PUT\n  request.\n\n* The leftmost instance will use the client response status for the\n  \u0027status\u0027 label. The rightmost instance will use the subrequest\n  response status for the \u0027status\u0027 label. These may differ. For\n  example, the S3 API can translate a subrequest 201 status to a\n  client 200 status.\n\nSome unit tests changes warrant explanation:\n\n* PathRewritingApp: this is meant to simulate a middleware modifying\n  the swift subrequest path (for example, in the manner of S3 API\u0027s\n  multiupload controller). The path should not be reset after the\n  request has been handled; this was causing the swift.backend_path\n  environ value to be incorrect\n\n* test_log_msg_template_s3api: the statsd assertions are removed. The\n  test does not setup a pipeline with middlewares to populated the\n  account in base_labels, which is now required.  The test subject\n  matter is log_msg_template, and the statsd assertions are unrelated\n  and duplicate assertions in other more targeted tests.\n\nRelated-Change: Ideecd0aa58ddf091c9f25f15022a9066088f532b\nRelated-Change: I5a96626862644fe23a0d4bc53e85989770c8ceec\nCloses-Bug: #2138371\nCloses-Bug: #2138370\nCloses-Bug: #2138372\nChange-Id: I16315873828b1e6ad3fc3e59bea325b73a0843c7\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/169a83ea4c0ee2ec30174380dd6bf4e698410110"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/169a83ea4c0ee2ec30174380dd6bf4e698410110"}]},"branch":"refs/heads/master"},"043f4505d8ba213156d96fadc5c7be564ad4e56f":{"kind":"REWORK","_number":4,"created":"2026-03-03 18:10:51.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/49/975949/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/975949/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/975949/4"}}},"commit":{"parents":[{"commit":"7bf728b6198400aa2057bf42d34f434e6dc71407","subject":"direct_client.py: proxy app: assign timestamp in a single place","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7bf728b6198400aa2057bf42d34f434e6dc71407"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-03 14:50:41.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-03 18:10:41.000000000","tz":0},"subject":"proxy_logging: use consistent labels for all stasd metrics","message":"proxy_logging: use consistent labels for all stasd metrics\n\nThe proxy_logging middleware emits a number of labeled statsd metrics.\nPreviously, labels were inconsistent for metrics emitted for the\nsame request:\n\n* some metrics had a \u0027container\u0027 label derived from the\n  swift.backend_path whereas others had a \u0027container\u0027 label derived\n  from the original request path. These differ for some S3 API\n  requests.\n\n* some metrics for container requests had a \u0027policy\u0027 label whereas\n  other metrics did not.\n\nThis patch addresses these inconsistencies by ensuring that, for the\nsame request and proxy_logging middleware instance:\n\n* All \u0027container\u0027 labels are derived from the request path. The\n  swift.backend_path value in the request environ is never used to\n  derive label values.\n\n* For container requests, no metrics have the \u0027policy\u0027 label.\n\nThere may be more than one proxy_logging instances in the middleware\npipeline, typically close to the start of the pipeline (the leftmost\ninstance for logging client requests) and close to the end of the\npipeline (the rightmost instance for logging subrequests). The metrics\nthat these instances emit for the same request *may differ*. In\nparticular:\n\n* The leftmost instance will use the client request path to derive the\n  \u0027container\u0027 label. The rightmost instance will use the subrequest\n  path to derive the \u0027container\u0027 label. These may differ. For example,\n  while an S3 MPU part upload request is being handled, the leftmost\n  instance container label would be \u003cbucket\u003e while the righmtost\n  instance container label would be \u003cbucket\u003e+segments for the PUT\n  request.\n\n* The leftmost instance will use the client response status for the\n  \u0027status\u0027 label. The rightmost instance will use the subrequest\n  response status for the \u0027status\u0027 label. These may differ. For\n  example, the S3 API can translate a subrequest 201 status to a\n  client 200 status.\n\nSome unit tests changes warrant explanation:\n\n* PathRewritingApp: this is meant to simulate a middleware modifying\n  the swift subrequest path (for example, in the manner of S3 API\u0027s\n  multiupload controller). The path should not be reset after the\n  request has been handled; this was causing the swift.backend_path\n  environ value to be incorrect\n\n* test_log_msg_template_s3api: the statsd assertions are removed. The\n  test does not setup a pipeline with middlewares to populated the\n  account in base_labels, which is now required.  The test subject\n  matter is log_msg_template, and the statsd assertions are unrelated\n  and duplicate assertions in other more targeted tests.\n\nRelated-Change: Ideecd0aa58ddf091c9f25f15022a9066088f532b\nRelated-Change: I5a96626862644fe23a0d4bc53e85989770c8ceec\nCloses-Bug: #2138371\nCloses-Bug: #2138370\nCloses-Bug: #2138372\nChange-Id: I16315873828b1e6ad3fc3e59bea325b73a0843c7\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/043f4505d8ba213156d96fadc5c7be564ad4e56f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/043f4505d8ba213156d96fadc5c7be564ad4e56f"}]},"branch":"refs/heads/master"},"0747c2fae2bcfcd032933f8a1dfd0722768ddb2c":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2026-03-05 17:12:59.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/49/975949/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/975949/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/975949/5"}}},"commit":{"parents":[{"commit":"7bf728b6198400aa2057bf42d34f434e6dc71407","subject":"direct_client.py: proxy app: assign timestamp in a single place","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7bf728b6198400aa2057bf42d34f434e6dc71407"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-03 14:50:41.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-05 17:12:17.000000000","tz":0},"subject":"proxy_logging: use consistent labels for all statsd metrics","message":"proxy_logging: use consistent labels for all statsd metrics\n\nThe proxy_logging middleware emits a number of labeled statsd metrics.\nPreviously, labels were inconsistent for metrics emitted for the\nsame request:\n\n* some metrics had a \u0027container\u0027 label derived from the\n  swift.backend_path whereas others had a \u0027container\u0027 label derived\n  from the original request path. These differ for some S3 API\n  requests.\n\n* some metrics for container requests had a \u0027policy\u0027 label whereas\n  other metrics did not.\n\nThis patch addresses these inconsistencies by ensuring that for the\nsame request and proxy_logging middleware instance:\n\n* All \u0027container\u0027 labels are derived from the request path. The\n  swift.backend_path value in the request environ is never used to\n  derive label values.\n\n* For container requests, no metrics have the \u0027policy\u0027 label.\n\nThere may be more than one proxy_logging instances in the middleware\npipeline, typically close to the start of the pipeline (the leftmost\ninstance for logging client requests) and close to the end of the\npipeline (the rightmost instance for logging subrequests). The metrics\nthat these instances emit for the same request *may differ*. In\nparticular:\n\n* The leftmost instance will use the client request path to derive the\n  \u0027container\u0027 label. The rightmost instance will use the subrequest\n  path to derive the \u0027container\u0027 label. These may differ. For example,\n  while an S3 MPU part upload request is being handled, the leftmost\n  instance container label would be \u003cbucket\u003e while the righmtost\n  instance container label would be \u003cbucket\u003e+segments for the PUT\n  request.\n\n* The leftmost instance will use the client response status for the\n  \u0027status\u0027 label. The rightmost instance will use the subrequest\n  response status for the \u0027status\u0027 label. These may differ. For\n  example, the S3 API can translate a subrequest 201 status to a\n  client 200 status.\n\nSome unit tests changes warrant explanation:\n\n* PathRewritingApp: this is meant to simulate a middleware modifying\n  the swift subrequest path (for example, in the manner of S3 API\u0027s\n  multiupload controller). The path should not be reset after the\n  request has been handled; this was causing the swift.backend_path\n  environ value to be incorrect\n\n* test_log_msg_template_s3api: the statsd assertions are removed. The\n  test does not setup a pipeline with middlewares to populated the\n  account in base_labels, which is now required.  The test subject\n  matter is log_msg_template, and the statsd assertions are unrelated\n  and duplicate assertions in other more targeted tests.\n\nRelated-Change: Ideecd0aa58ddf091c9f25f15022a9066088f532b\nRelated-Change: I5a96626862644fe23a0d4bc53e85989770c8ceec\nCloses-Bug: #2138371\nCloses-Bug: #2138370\nCloses-Bug: #2138372\nChange-Id: I16315873828b1e6ad3fc3e59bea325b73a0843c7\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0747c2fae2bcfcd032933f8a1dfd0722768ddb2c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0747c2fae2bcfcd032933f8a1dfd0722768ddb2c"}]},"branch":"refs/heads/master"},"c161834f3df6af4cce1ed7ba0715c0791d9651ec":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2026-03-13 15:56:11.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/49/975949/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/975949/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/975949/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/975949/6"}}},"commit":{"parents":[{"commit":"e63f0b3d68770d4792e1606ff8fe924b3f25b7f9","subject":"Merge \"tests: Make self.ts reliably a method (if present)\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e63f0b3d68770d4792e1606ff8fe924b3f25b7f9"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-03 14:50:41.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-13 15:54:38.000000000","tz":0},"subject":"proxy_logging: use consistent labels for all statsd metrics","message":"proxy_logging: use consistent labels for all statsd metrics\n\nThe proxy_logging middleware emits a number of labeled statsd metrics.\nPreviously, labels were inconsistent for metrics emitted for the\nsame request:\n\n* some metrics had a \u0027container\u0027 label derived from the\n  swift.backend_path whereas others had a \u0027container\u0027 label derived\n  from the original request path. These differ for some S3 API\n  requests.\n\n* some metrics for container requests had a \u0027policy\u0027 label whereas\n  other metrics did not.\n\nThis patch addresses these inconsistencies by ensuring that for the\nsame request and proxy_logging middleware instance:\n\n* All \u0027container\u0027 labels are derived from the request path. The\n  swift.backend_path value in the request environ is never used to\n  derive label values.\n\n* For container requests, no metrics have the \u0027policy\u0027 label.\n\nThere may be more than one proxy_logging instances in the middleware\npipeline, typically close to the start of the pipeline (the leftmost\ninstance for logging client requests) and close to the end of the\npipeline (the rightmost instance for logging subrequests). The metrics\nthat these instances emit for the same request *may differ*. In\nparticular:\n\n* The leftmost instance will use the client request path to derive the\n  \u0027container\u0027 label. The rightmost instance will use the subrequest\n  path to derive the \u0027container\u0027 label. These may differ. For example,\n  while an S3 MPU part upload request is being handled, the leftmost\n  instance container label would be \u003cbucket\u003e while the righmtost\n  instance container label would be \u003cbucket\u003e+segments for the PUT\n  request.\n\n* The leftmost instance will use the client response status for the\n  \u0027status\u0027 label. The rightmost instance will use the subrequest\n  response status for the \u0027status\u0027 label. These may differ. For\n  example, the S3 API can translate a subrequest 201 status to a\n  client 200 status.\n\nSome unit tests changes warrant explanation:\n\n* PathRewritingApp: this is meant to simulate a middleware modifying\n  the swift subrequest path (for example, in the manner of S3 API\u0027s\n  multiupload controller). The path should not be reset after the\n  request has been handled; this was causing the swift.backend_path\n  environ value to be incorrect\n\n* test_log_msg_template_s3api: the statsd assertions are removed. The\n  test does not setup a pipeline with middlewares to populated the\n  account in base_labels, which is now required.  The test subject\n  matter is log_msg_template, and the statsd assertions are unrelated\n  and duplicate assertions in other more targeted tests.\n\nRelated-Change: Ideecd0aa58ddf091c9f25f15022a9066088f532b\nRelated-Change: I5a96626862644fe23a0d4bc53e85989770c8ceec\nCloses-Bug: #2138371\nCloses-Bug: #2138370\nCloses-Bug: #2138372\nChange-Id: I16315873828b1e6ad3fc3e59bea325b73a0843c7\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c161834f3df6af4cce1ed7ba0715c0791d9651ec"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c161834f3df6af4cce1ed7ba0715c0791d9651ec"}]},"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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
