)]}'
{"id":"openstack%2Fswift~946349","triplet_id":"openstack%2Fswift~master~I4d8a4b530465b587caced4362eb9178507701cef","project":"openstack/swift","branch":"master","topic":"p-fake-statsd-client","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2025-04-09 09:26:39.000000000","reason":"\u003cGERRIT_ACCOUNT_7847\u003e replied on the change","reason_account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}},"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2025-04-09 10:42:32.000000000","reason":"Change was submitted"},"36606":{"account":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"last_update":"2025-04-09 10:42:32.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I4d8a4b530465b587caced4362eb9178507701cef","subject":"DRY out AbstractStatsdClient public methods","status":"MERGED","created":"2025-04-04 16:19:53.000000000","updated":"2025-04-09 10:43:43.000000000","submitted":"2025-04-09 10:42:32.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":31,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"946349-p-fake-statsd-client","meta_rev_id":"60cd6bdc442b5b8d37d83cfd753a86b83cdb6bf5","_number":946349,"virtual_id_number":946349,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-04-09 10:42:32.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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":2,"date":"2025-04-09 09:26:39.000000000","permitted_voting_range":{"min":2,"max":2},"_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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":1,"date":"2025-04-09 09:26:39.000000000","permitted_voting_range":{"min":1,"max":1},"_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":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":"2025-04-04 16:53:41.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-04-04 17:26:32.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-04-04 20:29: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":"2025-04-07 14:08:51.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"REVIEWER"}],"messages":[{"id":"608eebe1ba81d380e4d4e45c4ee5ff64ebb2bdd9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-04-04 16:19:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f4b227b1531d1d01563074d45bc1c2ca53840c5c","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-04 16:53:41.000000000","message":"Patch Set 1:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3deed7c6c6524381b1c49a82742ddbb9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8b3647dc170d48f18c62f4a6f36f3464 : FAILURE in 31m 55s","accounts_in_message":[],"_revision_number":1},{"id":"1102f0dca049cd445737577544c154fe677701ad","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-04 17:26:32.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/65d4557c34fd43e8af7baa502db4ab5e\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0a56671e8a934b8bb016143c0507a4d2 : SUCCESS in 9m 51s\n- grenade https://zuul.opendev.org/t/openstack/build/0bf250a16aca4a3fb2f7c1a8bbde34d4 : SUCCESS in 48m 12s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3af69193d1c4409eb97e353ec15b7104 : SUCCESS in 57m 11s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/792ea44d34a84b35a9ffb2d16d86ebb3 : SUCCESS in 48m 17s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/0b6b170eb7964061989bd6b9013eb95d : SUCCESS in 1h 00m 45s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b7ddd65d5aac4b7dad6bcf678710f116 : SUCCESS in 12m 23s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0d1155d99ed5412cbd5540c0101fff37 : SUCCESS in 27m 54s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0832f161def54f25b85b92b9b327946f : SUCCESS in 13m 26s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a5237159b0f840108d5ec2ffa2dae4a8 : SUCCESS in 4m 42s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/8a858fb9c4e04510bec30f284a1dc298 : FAILURE in 20m 29s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/84bc374c5cba4a29a62521e41f444921 : FAILURE in 16m 25s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/396c138f0fc84cbe88b464f4f81f9219 : FAILURE in 21m 21s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/7c4284a294cf4e8e806c3d383d64c449 : SUCCESS in 13m 04s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/453637a8ed0042478c18c44917fe99bb : SUCCESS in 12m 32s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/9beea657892949708eba004a35e031d4 : SUCCESS in 16m 23s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b505e44a7d494a12b1096c1ccd758318 : SUCCESS in 6m 13s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/98c592a449df4e288b6de68578f91af7 : SUCCESS in 17m 00s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/35c6886cdc2a43b78c37957060a5f2fe : SUCCESS in 8m 43s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/3a257afc26d8408b98af49ddce8dc199 : SUCCESS in 54m 50s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a03bb69a6ec746828feeac12470b8bc6 : SUCCESS in 52m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4a2353fcee25455d84b0eaa0fb98c205 : SUCCESS in 47m 25s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/46b909f5927148f39b888dc3368fb0f2 : FAILURE in 18m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/947279ee030f4531b92d30300b231453 : SUCCESS in 5m 28s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/1a82d23a88f14cb2af7978711ffc7305 : SUCCESS in 26m 48s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/904a03e28aab46b0bd7b743e61168d20 : SUCCESS in 47m 39s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/99f434809f454b8f95d6b62175cd0724 : SUCCESS in 51m 56s","accounts_in_message":[],"_revision_number":1},{"id":"0da2d8acaebcdb33083664cf82232b54cf0998e0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-04-04 19:45:11.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"8dbb39859b40e81e4fabcfd818de5689965d7735","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-04-04 19:49:22.000000000","message":"Uploaded patch set 3: Commit message was updated.","accounts_in_message":[],"_revision_number":3},{"id":"5fe5a5c5f421be97c75fe16561db368143718612","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-04 20:26:49.000000000","message":"Patch Set 3:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a621cf7201ce4ba98727f386098e1be0\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/977b701311504ac6a7f6048f6d0aef43 : FAILURE in 35m 35s","accounts_in_message":[],"_revision_number":3},{"id":"8adc314c4c49b1132443bf517c8ad01ee03e0485","author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"date":"2025-04-04 20:29:19.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"d33ed401a7f1226b34db3646ada93945b058845a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-04 20:40:58.000000000","message":"Patch Set 3: Verified-1\n\n(1 comment)\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/398a30a83f0d4d34af19282dc2eca6a4\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b3a7024b85624319926471e584193612 : SUCCESS in 8m 50s\n- grenade https://zuul.opendev.org/t/openstack/build/b58f5058f2484cc4b972998ddc34a7e3 : SUCCESS in 39m 26s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/89e602aac4174975b1c8151e079ad84d : SUCCESS in 28m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f503723e14e245a5b85911d76ab1cd25 : SUCCESS in 29m 33s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3d743b7b91f24e31a102fe9df8c5fbd4 : SUCCESS in 32m 07s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9846446721e24ef69136f74c63a4fa48 : SUCCESS in 17m 44s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/18e1696248ef4f7791be370bd9a3d67b : SUCCESS in 12m 15s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e15ef871d6e343828c75b603dca44ee6 : SUCCESS in 20m 15s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a8b71cb6551a49ef981312a30411000b : SUCCESS in 4m 43s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/515e6f4024a44fc2a22f349147a68160 : FAILURE in 17m 56s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/59701df9412d4d04affb69b12da282a8 : FAILURE in 8m 53s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/0a594a4ddd7e44d9bbed4b12f7d41314 : FAILURE in 34m 31s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c846cb9e2738479d8c3483e5637da953 : SUCCESS in 15m 14s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d931424b0fa444f29c40665b81bc20b7 : SUCCESS in 8m 58s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/e6e8dea15a224b25bca310115869a4c8 : SUCCESS in 14m 36s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/5c4663c6430342aebf00865ce2f46926 : SUCCESS in 5m 45s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/17ed4571c3df4c67951fb7773ca2c8ca : SUCCESS in 8m 18s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/94e592ffe0284452bf709bd423ecdb59 : SUCCESS in 4m 22s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6b0d0a1f29ab4bf6889b8d6e806bbcbb : SUCCESS in 50m 14s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c7b7f168e4af4b91a30fe6037eac34ec : SUCCESS in 30m 12s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2355315639c24348823e661760224a43 : SUCCESS in 40m 10s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/22e012f71fc5437ba31bb117c97e37d1 : FAILURE in 8m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3763ddd66ebe44cf8edf3fdd36253ca9 : FAILURE in 2m 45s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f547ccf19bf6429384a0a4f1a23b1c8b : SUCCESS in 22m 47s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/6c736b8fd55a4cddbb76c67eee63610f : SUCCESS in 41m 44s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/37d10b16b1024439a5b90b0270117ec8 : SUCCESS in 30m 23s","accounts_in_message":[],"_revision_number":3},{"id":"2d895e51b9b3454e7281bf6fd38d0808875c80be","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-04-07 14:08:51.000000000","message":"Patch Set 3: Code-Review+1\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a6943848479b1a40c5d86539608e40113b221d89","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-04-07 19:02:55.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":"96628b88c4bc10aa992ffd3402a9161d74735488","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-04-07 19:13:01.000000000","message":"Patch Set 4:\n\n(5 comments)","accounts_in_message":[],"_revision_number":4},{"id":"7f31f7d76020f95f8dd21c96e561b5dba680fc45","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-07 19:48:56.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/85d1ecc2e4714e498f7189a4964635b9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/d5d01373da17471aa15354c66247ab63 : SUCCESS in 44m 27s","accounts_in_message":[],"_revision_number":4},{"id":"1aa6bf1e79b47b445b997b6c6000bcb571efa964","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-07 20:13:37.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c796c169a27044f3b0a533a45f9ba578\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/df13e69bb2a2490e94ca2db00fa891c4 : SUCCESS in 6m 29s\n- grenade https://zuul.opendev.org/t/openstack/build/39d47a0bc77547b1bd051dadffaddaff : SUCCESS in 58m 29s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d0eaddc2750842aeb51e4d4cb603667e : SUCCESS in 40m 02s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c5e52528054f40d68a25dd2a021e322b : SUCCESS in 48m 06s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8076a1e58e1c4991b0a9055b421c030b : SUCCESS in 58m 28s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/697e505ef74744869be44caa05700ed5 : SUCCESS in 18m 40s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a2e91622af3e4405bfe6844371ee3375 : SUCCESS in 20m 39s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fe4818554c9d459fb2225a77db009c5b : SUCCESS in 21m 01s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4e04d3cf6f3449c4b81dec58778e604c : SUCCESS in 5m 00s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/3b14660e27a2495480f5bcc75f8e5842 : SUCCESS in 18m 49s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/84f8f23721cd460391128c3acb67cf6c : SUCCESS in 23m 44s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/338af25e8ad241f8beab8e629b947440 : SUCCESS in 10m 24s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/45d4020a20034d8bab0de30bb8fa422b : SUCCESS in 13m 55s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/cb5f10210d6646da89f1df74935aaf25 : SUCCESS in 13m 05s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/3639cf0224b14be69a4cde8e745b9603 : SUCCESS in 15m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/56f8660839014c8981449ebd2a6cae22 : SUCCESS in 5m 55s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b673be3b8407403b96e32a8e621367f7 : SUCCESS in 15m 47s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/e7aca2dbfb854fa6bc7ad03d7ae1812e : SUCCESS in 3m 59s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b934844b148341beb50b64eb2731188b : SUCCESS in 1h 05m 19s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d0c35db097834282b1250942d83756bc : SUCCESS in 34m 56s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ac5a40900247408f8809cf1e5c24028f : SUCCESS in 40m 40s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/0e12ead702484c16b5ee87a7a46cde49 : SUCCESS in 17m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7546b93a67144795b998923b1db02a29 : SUCCESS in 4m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/abda7b686b0a4df2ada039c94c193fe6 : SUCCESS in 17m 33s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/38663a4d53934a6f8534252e028c1564 : SUCCESS in 30m 20s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3b74e037cd1b4035b7effe5e97f4018f : SUCCESS in 56m 44s","accounts_in_message":[],"_revision_number":4},{"id":"6b510e602704a9bf0960b062396ce35df29b09fc","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-04-08 12:20:56.000000000","message":"Patch Set 4: Code-Review-1\n\n(10 comments)","accounts_in_message":[],"_revision_number":4},{"id":"d6d54d2d75a11d9f9b3d16850b7a7bfd3ca79d15","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-04-08 22:03:52.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"950617f5e4a51a9406dad1c858c061cc6f336a25","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-08 22:53:21.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/aa3cc2c42d6b4863ac2d5f1970646fa8\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/d68e5dea3a474214a717fdaf205c5d12 : SUCCESS in 47m 11s","accounts_in_message":[],"_revision_number":5},{"id":"8e22b6a4887821435622d7af4cbbf67bc494109d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-08 23:04:18.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6693f04b1174423191406f8f8d370257\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dfa7559475b3455f8b87b2ac80c5ebd0 : SUCCESS in 11m 26s\n- grenade https://zuul.opendev.org/t/openstack/build/cd15a2b55d9c4706ac28fb5d3c88a42d : SUCCESS in 59m 24s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/68b686cacd4e4ee580d3b070b1a15f2b : SUCCESS in 51m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/e3482052eddc4ba9878ef4fc2da65fc9 : SUCCESS in 37m 45s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/62fa4cb521474cb4afd7f1ef55b0f904 : SUCCESS in 31m 05s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/82b74f48f02e45938586f6d7fa14f201 : SUCCESS in 19m 25s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d2cedd85ea9049498b1a2ddd67d53ffd : SUCCESS in 16m 42s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6e7d281abfbc44869b04b786abfefd1f : SUCCESS in 20m 36s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/acf747fbb4304e37840433b4ff3477ed : SUCCESS in 4m 09s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/4bfceeb877c4477fbbd830142054dd67 : SUCCESS in 15m 56s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/e655040e96a642f6ba2d7b16059ecf0d : SUCCESS in 8m 05s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/8123cfab54224f52bf73538a85125a43 : SUCCESS in 29m 42s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/b2ceae57ecb948389d3f62cd9fde1cd2 : SUCCESS in 13m 24s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/2fd3cc8d2cfe4ec4881206fdc1339f69 : SUCCESS in 14m 57s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/b9e3818d581843c7a1d5a5995ff3acff : SUCCESS in 12m 53s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/bce897d5bb724e9883667306a7bafc49 : SUCCESS in 8m 16s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/a7d3ed127825453aac17e35eec862bb3 : SUCCESS in 14m 04s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/af22d763fe91466cbfe95b873e031180 : SUCCESS in 6m 28s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/435138efa91849968163dfdc911b1750 : SUCCESS in 55m 29s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/49c92aa7d689408a8ad00f26d0093eb1 : SUCCESS in 17m 44s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f4d1d2bc92f245d1bcb7c21ba6f95694 : SUCCESS in 30m 15s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d1ef937662dd43188b076b84f73d79a9 : SUCCESS in 17m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2c85e05e659b48718b0a4a552ffca560 : SUCCESS in 3m 06s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f9f4c306bfdd4ab8b0005c7c155deb02 : SUCCESS in 15m 48s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/4e82173f648a4d6cb6d0449242559966 : SUCCESS in 47m 34s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f684e3da89ab409d88afbf548f800d55 : SUCCESS in 26m 44s","accounts_in_message":[],"_revision_number":5},{"id":"b9bd4202357fee91789e13551cb37576e914111d","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2025-04-09 00:51:30.000000000","message":"Patch Set 5:\n\n(10 comments)","accounts_in_message":[],"_revision_number":5},{"id":"b8bce895dd89146bab1207e3fe3274b9a8fdae71","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-04-09 09:26:39.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"bfa54d02cd3e38b9844becd6d29706dd88c088dd","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-09 09:27:27.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"d27c354ee106a0a54eeecb6cb6db92498a510387","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-09 10:42:32.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6bddb976e21342b6bb6e13c8935fdfcb\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/48973b16dc4e44a6b643dd320c4b6c07 : SUCCESS in 8m 07s\n- grenade https://zuul.opendev.org/t/openstack/build/72c5ec63d26240869b0012781ecb0494 : SUCCESS in 45m 59s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ddf911885e0a4dc688bb5048c27a6085 : SUCCESS in 47m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/bcad6bda9ce847c88ce55440ffe6a188 : SUCCESS in 41m 57s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e6d86c020d0d4a2583431c145a406dfa : SUCCESS in 1h 01m 09s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/290a6398888c45979953523df095078a : SUCCESS in 5m 11s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/83d528cab5b54274a06743d57cde5646 : SUCCESS in 9m 29s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/2b21633a489945688a41d293bd50972e : SUCCESS in 11m 42s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/a415856bb19747899fe0b7f2b95d5fc3 : SUCCESS in 35m 40s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/9e296e9f981c4826847684b1e6463839 : SUCCESS in 14m 45s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/05b8b1b9406d42eda29eb14fff4115e8 : SUCCESS in 8m 08s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/3500be199bdb457a84a0ecf026dff555 : SUCCESS in 10m 44s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/0cf0d4ae360742749442ccbf21efe188 : SUCCESS in 6m 18s\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/2926d41bf77c49dd9626d439beaf0c9b : SUCCESS in 4m 04s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/29ce5d71a2474a2194283b1055c20765 : SUCCESS in 33m 20s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7d709daac3ba4ff7b9e3022135ad6ee6 : SUCCESS in 19m 15s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/3a8b13eb65d94c66b0f34f149bcedfca : SUCCESS in 18m 42s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/95004437fff445ba8efbbeb913fb8b05 : SUCCESS in 8m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/86c959d2bd474f02bdcbc8a754c2f94c : SUCCESS in 2m 33s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/6b683bf087e7456fb3ed260a014e1826 : SUCCESS in 10m 42s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/404b765424074de5891c805c41caa2cc : SUCCESS in 38m 57s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a000b4062e2047debc3aae49100ac2f7 : SUCCESS in 41m 54s","accounts_in_message":[],"_revision_number":5},{"id":"3db835cce9da51dcd61b942ed543a1875db18660","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-09 10:42:32.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":5},{"id":"60cd6bdc442b5b8d37d83cfd753a86b83cdb6bf5","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-09 10:43:43.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/00710c0df57e4bc7a3a6682bb8fb0944\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/12b9024aec434907b3d01bf4d306e19d : SUCCESS in 50s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/7bb0124c22864fde8521a74341da79e1 : SUCCESS in 33s (non-voting)","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"563c1ca6564ac94c1fe85ceb45bf7b8585fe3fbb","revisions":{"33b3dc401f22297b0417eb4c388703efd5404a2b":{"kind":"REWORK","_number":1,"created":"2025-04-04 16:19:53.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/49/946349/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/946349/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/946349/1"}}},"commit":{"parents":[{"commit":"769e482ea862e6416f3eff893da7edf18e36f6cb","subject":"tests: provide FakeLabeledStatsdClient for debug","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/769e482ea862e6416f3eff893da7edf18e36f6cb"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 16:06:27.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 16:18:31.000000000","tz":-300},"subject":"DRY out AbstractStatsdClient public methods","message":"DRY out AbstractStatsdClient public methods\n\nBoth the StatsdClient and LabeledStatsdClient implemented all of the\npublic interface methods for an AbstractStatsdClient.  Even though the\nimplementations are essentially identicial the interfaces themselves\nwere made different WRT the \"last\" posistional arg if provided.\n\nThis change puts the identical implemenations of the public interface in\nthe AbstractStatsdClient class with a generic interface.  For backwards\ncompat with the existing public interface on the legacy-StatsdClient we\nhave to make the old signature explicit - but we can trasparently call\ninto the common implementation.\n\nThis change also \"fixes\" the signature for the new LabeledStatsdClient\npublic interface methods so labels must always be passed in explicitly\nas a kwarg when provided so as not to get let us get confused accidently\npassing in samplerate\u003d\u003cdict\u003e to a legacy-StatsdClient.\n\nChange-Id: I4d8a4b530465b587caced4362eb9178507701cef\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/33b3dc401f22297b0417eb4c388703efd5404a2b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/33b3dc401f22297b0417eb4c388703efd5404a2b"}]},"branch":"refs/heads/master"},"e310b886f62bf0874f7dee39070f4bd7bfbba890":{"kind":"REWORK","_number":2,"created":"2025-04-04 19:45:11.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/49/946349/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/946349/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/946349/2"}}},"commit":{"parents":[{"commit":"769e482ea862e6416f3eff893da7edf18e36f6cb","subject":"tests: provide FakeLabeledStatsdClient for debug","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/769e482ea862e6416f3eff893da7edf18e36f6cb"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 16:06:27.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 19:44:55.000000000","tz":-300},"subject":"DRY out AbstractStatsdClient public methods","message":"DRY out AbstractStatsdClient public methods\n\nBoth the StatsdClient and LabeledStatsdClient implemented all of the\npublic interface methods for an AbstractStatsdClient.  Even though the\nimplementations are identical the interfaces themselves were made\ndifferent WRT the \"last\" positional arg if provided.\n\nThis change puts the identical implementations of the public interface in\nthe AbstractStatsdClient class with a generic interface.  For backwards\ncompat with the existing public interface on the legacy-StatsdClient we\nhave to make the old signature explicit - but we can transparently call\ninto the common implementation.\n\nFor consistency with legacy-Statsdclient and better docstrings this\nchange also \"fixes\" the signature for the new LabeledStatsdClient public\ninterface methods so they explicitly state labels must always be passed\nin as a kwarg to avoid confusion accidentally passing in\n`sample_rate\u003d\u003cdict\u003e` or `label\u003d\u003cfloat\u003e` as a positional arg.\n\nDrive-by: as a side-effect of consolidating the implementations there was\nnow only one place to extend a fix in the FakeStatedClient interface so\nthat tests who assert StatsdClient method calls don\u0027t have to read like\nthe UUT also called some *other* public StatsdClient method.\n\nChange-Id: I4d8a4b530465b587caced4362eb9178507701cef\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e310b886f62bf0874f7dee39070f4bd7bfbba890"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e310b886f62bf0874f7dee39070f4bd7bfbba890"}]},"branch":"refs/heads/master"},"c02ce09a46fdada196b7ca8d33e9209deddf6c78":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2025-04-04 19:49:22.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/49/946349/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/946349/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/946349/3"}}},"commit":{"parents":[{"commit":"769e482ea862e6416f3eff893da7edf18e36f6cb","subject":"tests: provide FakeLabeledStatsdClient for debug","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/769e482ea862e6416f3eff893da7edf18e36f6cb"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 16:06:27.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 19:48:25.000000000","tz":-300},"subject":"DRY out AbstractStatsdClient public methods","message":"DRY out AbstractStatsdClient public methods\n\nBoth the StatsdClient and LabeledStatsdClient implemented all of the\npublic interface methods for an AbstractStatsdClient.  Even though the\nimplementations are identical the interfaces themselves were made\ndifferent WRT the \"last\" positional arg if provided.\n\nThis change puts the identical implementations of the public interface\nin the AbstractStatsdClient class with a generic interface.  For\nbackwards compat with the existing public interface on the\nlegacy-StatsdClient we have to make the old signature explicit - but we\ncan transparently call into the common implementation.\n\nFor consistency with legacy-Statsdclient and better docstrings this\nchange also \"fixes\" the signature for the new LabeledStatsdClient public\ninterface methods so they explicitly state labels must always be passed\nin as a kwarg to avoid confusion accidentally passing in\n`sample_rate\u003d\u003cdict\u003e` or `label\u003d\u003cfloat\u003e` as a positional arg.\n\nDrive-by: as a side-effect of consolidating the implementations there\nwas now only one place to extend a fix in the FakeStatedClient interface\nso that tests who assert StatsdClient method calls don\u0027t have to read\nlike the UUT also called some *other* public StatsdClient method.\n\nChange-Id: I4d8a4b530465b587caced4362eb9178507701cef\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c02ce09a46fdada196b7ca8d33e9209deddf6c78"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c02ce09a46fdada196b7ca8d33e9209deddf6c78"}]},"branch":"refs/heads/master"},"acfed0da0e1c1c6e2c38e54abf88b27a2fcee710":{"kind":"REWORK","_number":4,"created":"2025-04-07 19:02:55.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/49/946349/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/946349/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/946349/4"}}},"commit":{"parents":[{"commit":"769e482ea862e6416f3eff893da7edf18e36f6cb","subject":"tests: provide FakeLabeledStatsdClient for debug","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/769e482ea862e6416f3eff893da7edf18e36f6cb"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 16:06:27.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-07 18:57:21.000000000","tz":-300},"subject":"DRY out AbstractStatsdClient public methods","message":"DRY out AbstractStatsdClient public methods\n\nBoth the StatsdClient and LabeledStatsdClient implemented all of the\npublic interface methods for an AbstractStatsdClient.  Even though the\nimplementations are identical the interfaces themselves were made\ndifferent WRT the \"last\" positional arg if provided.\n\nThis change puts the identical implementations of the public interface\nin the AbstractStatsdClient class with a generic interface.  For\nbackwards compat with the existing public interface on the\nlegacy-StatsdClient we have to make the old signature explicit - but we\ncan transparently call into the common implementation.\n\nFor consistency with legacy-Statsdclient and better docstrings this\nchange also \"fixes\" the signature for the new LabeledStatsdClient public\ninterface methods so they explicitly state labels must always be passed\nin as a kwarg to avoid confusion accidentally passing in\n`sample_rate\u003d\u003cdict\u003e` or `label\u003d\u003cfloat\u003e` as a positional arg.\n\nDrive-by: as a side-effect of consolidating the implementations there\nwas now only one place to extend a fix in the FakeStatedClient interface\nso that tests who assert StatsdClient method calls don\u0027t have to read\nlike the UUT also called some *other* public StatsdClient method; which\nalso cleaned up some Fake helpers that deal specifically with counters.\n\nDrive-by: fix stub return value TypeError in a _get_hashes mock that was\ncaught by better faking. N.B. it doesn\u0027t matter how statsd would have\nhandled \u0027metric:None|c\u0027 because it was only a test bug.\n\nChange-Id: I4d8a4b530465b587caced4362eb9178507701cef\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/acfed0da0e1c1c6e2c38e54abf88b27a2fcee710"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/acfed0da0e1c1c6e2c38e54abf88b27a2fcee710"}]},"branch":"refs/heads/master"},"563c1ca6564ac94c1fe85ceb45bf7b8585fe3fbb":{"kind":"REWORK","_number":5,"created":"2025-04-08 22:03:52.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/49/946349/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/946349/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/946349/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/946349/5"}}},"commit":{"parents":[{"commit":"769e482ea862e6416f3eff893da7edf18e36f6cb","subject":"tests: provide FakeLabeledStatsdClient for debug","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/769e482ea862e6416f3eff893da7edf18e36f6cb"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-04 16:06:27.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2025-04-08 22:03:43.000000000","tz":-300},"subject":"DRY out AbstractStatsdClient public methods","message":"DRY out AbstractStatsdClient public methods\n\nBoth the StatsdClient and LabeledStatsdClient implemented all of the\npublic interface methods for an AbstractStatsdClient.  Even though the\nimplementations are identical the interfaces themselves were made\ndifferent WRT the \"last\" positional arg if provided.\n\nThis change puts the identical implementations of the public interface\nin the AbstractStatsdClient class with a generic interface.  For\nbackwards compat with the existing public interface on the\nlegacy-StatsdClient we have to make the old signature explicit - but we\ncan transparently call into the common implementation.\n\nFor consistency with legacy-Statsdclient and better docstrings this\nchange also \"fixes\" the signature for the new LabeledStatsdClient public\ninterface methods so they explicitly state labels must always be passed\nin as a kwarg to avoid confusion accidentally passing in\n`sample_rate\u003d\u003cdict\u003e` or `label\u003d\u003cfloat\u003e` as a positional arg.\n\nDrive-by: as a side-effect of consolidating the implementations there\nwas now only one place to extend a fix in the FakeStatedClient interface\nso that tests who assert StatsdClient method calls don\u0027t have to read\nlike the UUT also called some *other* public StatsdClient method; which\nalso cleaned up some Fake helpers that deal specifically with counters.\n\nDrive-by: fix stub return value TypeError in a _get_hashes mock that was\ncaught by better faking. N.B. it doesn\u0027t matter how statsd would have\nhandled \u0027metric:None|c\u0027 because it was only a test bug.\n\nChange-Id: I4d8a4b530465b587caced4362eb9178507701cef\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/563c1ca6564ac94c1fe85ceb45bf7b8585fe3fbb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/563c1ca6564ac94c1fe85ceb45bf7b8585fe3fbb"}]},"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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}}]}],"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":{}}}]}
