)]}'
{"id":"openstack%2Fswift~1001706","triplet_id":"openstack%2Fswift~master~Ib0f89646034fd7ab8f3806b97e5ec4526907190a","project":"openstack/swift","branch":"master","topic":"p-s3api-copy-s3-etag","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-08-24 20:22:24.000000000","reason":"Change was submitted"},"6968":{"account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"last_update":"2026-08-24 18:45:07.000000000","reason":"\u003cGERRIT_ACCOUNT_6968\u003e replied on the change","reason_account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}},"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-08-24 20:22:24.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ib0f89646034fd7ab8f3806b97e5ec4526907190a","subject":"s3api: don\u0027t copy all s3api sysmeta when copying objects","status":"MERGED","created":"2026-08-20 16:59:14.000000000","updated":"2026-08-24 21:33:36.000000000","submitted":"2026-08-24 20:22:24.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":63,"unresolved_comment_count":12,"has_review_started":true,"submission_id":"1001706-p-s3api-copy-s3-etag","meta_rev_id":"be24322bc6cca3922bff73751b67b1c1bb05701c","_number":1001706,"virtual_id_number":1001706,"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":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":0,"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-24 20:22:23.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"all":[{"value":2,"date":"2026-08-24 18:45:07.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":2,"date":"2026-08-24 21:33:36.000000000","post_submit":true,"permitted_voting_range":{"min":2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"all":[{"value":1,"date":"2026-08-24 18:45:07.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":1,"date":"2026-08-24 21:33:36.000000000","post_submit":true,"permitted_voting_range":{"min":1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-20 18:39:29.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-08-22 02:04:47.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2026-08-24 08:31:18.000000000","updated_by":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"reviewer":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"state":"CC"},{"updated":"2026-08-24 15:06:25.000000000","updated_by":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"reviewer":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"state":"REVIEWER"}],"messages":[{"id":"0796c5352c8e70697929655855436ab58cf40015","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-20 16:59:14.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9121980bd0ef22836e49db09d98892ece5732d1d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-20 17:27:10.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"97ce1bf0cd974f7095bd97d875d7e5d03d6f0eca","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-20 18:39:29.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/e08bbc8d22d540f2a23ad84c2ad5dc8f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/319c206e28cf48a78aa1ae5c4f16e5c0 : SUCCESS in 8m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0097037c00f74b3db1a3b1a1e26a2007 : SUCCESS in 5m 50s\n- grenade https://zuul.opendev.org/t/openstack/build/58dedb04f86a45b28f6e1ab85e22e382 : SUCCESS in 34m 17s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/90f95f8c0cba4889b01aedb9b5cb1d63 : SUCCESS in 35m 11s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9b05eede86a84ebeba26392fdc4ef716 : SUCCESS in 31m 35s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/9d51125a1c7040d58272b0f1b9b10f9c : SUCCESS in 31m 29s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/056ce87a829a43bebe96c5a90dcd84a2 : FAILURE in 20m 16s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7d8baae214ce48fdbeacb9b7556fbdbd : FAILURE in 24m 46s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/090c9fa75a474d64abe7628f2d0bd10e : FAILURE in 21m 44s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/578b1cc0a29243ac8e331a201edfaa45 : SUCCESS in 7m 01s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/59e763f2fd404c83bec406eb51d6f5dc : SUCCESS in 25m 58s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c05cb888a29b40e89bbabc4d5d9fc41e : SUCCESS in 24m 18s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/8cb2756a5fcc4562b0fb19e10cb4ad03 : SUCCESS in 14m 29s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/51dee6a7a9754392a55953605a58e704 : SUCCESS in 24m 22s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/f17b386cb2444a16892b82a21f07eba7 : SUCCESS in 18m 00s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/5da052f9f948468a9362986cf337fcc2 : SUCCESS in 9m 44s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/65f87b5e13cf48eea9a58eb03b3484ef : SUCCESS in 16m 38s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/35e7a1d497dd4485a4487622d92cd47d : FAILURE in 19m 15s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/9db30916bcfb43e49e41cee856f3b0ca : SUCCESS in 6m 59s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/353623ad62104d2881aa98ef43ff224b : FAILURE in 7m 53s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7c4e6ba8cd1843dc9af6bd6bd7fb9a9b : SUCCESS in 9m 17s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/cddbd8a7decd44c8baa400e3d90be365 : SUCCESS in 1h 05m 29s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/06901bca01ba4787aa6e5f32aeaa504a : SUCCESS in 25m 45s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8134ec9c749344f9adee5ec05774cee2 : SUCCESS in 27m 03s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/21c10b5351cb4f1bb0556cf5c1abc407 : SUCCESS in 31m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3cbcd34b579d4cf3b69850b32772592a : SUCCESS in 4m 59s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c616f542b5fc4c7589a5da2d28d67515 : SUCCESS in 10m 56s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a8818a71b32946c5803ec70e5cf7e073 : SUCCESS in 46m 34s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":2},{"id":"1e5be1a125844a4840882c1c648b46fadca375bd","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-20 19:06:10.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e8ab42870df844259a0327ddb0814d26\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/91b4d3ef69c84cfb81b1f6f39a912f82 : SUCCESS in 1h 04m 06s","accounts_in_message":[],"_revision_number":2},{"id":"241175e661e4841ecbb127be7ab2296024506fa9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-21 08:46:30.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"82450ddf966a7c35889d90cd5b9bdf1b32d0b7ac","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-21 10:03:58.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/9fbb6745bdcc47b2b0b836e488befba0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7e5802ff90f3425ba832e04d8d801ec8 : SUCCESS in 11m 03s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0ec5117c483d470f94043b49b9944603 : SUCCESS in 9m 07s\n- grenade https://zuul.opendev.org/t/openstack/build/ca831beb9f6343e78b252936656cc4df : SUCCESS in 1h 05m 45s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/73ebf848734a4192b39492e9eb88f9d0 : SUCCESS in 1h 03m 26s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/1698abee715145ac9f8b66ac011b7f9e : SUCCESS in 54m 35s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/45f0b72da75d416e89f07759bd03cc8a : SUCCESS in 50m 26s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8a804a3a70804631ae8458bd09dec2ae : FAILURE in 22m 32s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/77cbab66f5d84f86a875f1e784d03545 : FAILURE in 22m 10s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1e2384c5edfa458aabe3b9b4948c4bad : FAILURE in 22m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6cfa6470b5f64757adec7ea7672337f0 : SUCCESS in 6m 54s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/2b27387bcf504200aba2bc19fcebf7ef : SUCCESS in 24m 55s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/95ec2c100d4046d088a5f92d161fd76f : SUCCESS in 22m 45s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6a33556b807842f88515f9d4e03946ff : SUCCESS in 33m 49s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/1b69c644a191468694da207ec0673aeb : SUCCESS in 22m 39s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/6cc31736cf0f4e068fee7d03b8c20f6c : FAILURE in 4m 14s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/531da7a66d604cf9a2a0938b0c538be8 : SUCCESS in 15m 22s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/fc3fc608498b40adb183bf1a8b6eca4d : SUCCESS in 17m 44s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/5b8d33c1caaa4c8ea4c019ff5d0dc286 : SUCCESS in 23m 00s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/1fd6f82fc3eb4a0e974465e5f1fa2458 : SUCCESS in 5m 50s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/01dff3365c6e450e8a378a98339db8c2 : FAILURE in 7m 44s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/632ab7f5584a431b9934b6e35229e275 : SUCCESS in 9m 02s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b5392f847a6044c9a0d4ccd64f6dcf40 : SUCCESS in 58m 21s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/aa58a2afac1c4709a42efc126f28c160 : SUCCESS in 50m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/da08215f5a724e05969906657c44eb85 : SUCCESS in 52m 11s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f668cc50bac34c7991de3f9ccbf1a9b5 : SUCCESS in 28m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ad25be7f6fe64350a944a6fb9590f11d : SUCCESS in 4m 15s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/6abb3c17f55a4353b7b1844eecad1553 : SUCCESS in 19m 15s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3282e575ed5a49beb0b762afdf0e03be : SUCCESS in 1h 11m 14s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":3},{"id":"28295de945cebe99559f830d72572657a996feda","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-21 11:19:07.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"fc243c06cd553fc5a2005450a45e840bf2be295c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-21 12:29:27.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f548a2ac48ae43889ab03145d31c9bde\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/016d5292a64544d087b8b83882c4fd90 : SUCCESS in 11m 58s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/64d2d7f4d44545f889b85c45253cbb6d : SUCCESS in 10m 26s\n- grenade https://zuul.opendev.org/t/openstack/build/d3d8261a3ce844b3bb3e3ec789f1cb1b : SUCCESS in 1h 06m 47s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3b043b676210410899b31ca800e2cf75 : SUCCESS in 1h 04m 57s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d29306b098a244449ea6905d372fe8d9 : SUCCESS in 52m 17s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5bf2c0f8bf09486d9e2ac1fdbda959b3 : SUCCESS in 58m 07s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e28ee80a44524ff9b8cd947b7c3f0c5d : SUCCESS in 20m 10s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/72fe4e438eba48d7a265e54b004f2e99 : SUCCESS in 17m 19s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9c388f52015745f099d5046c5afcfd78 : SUCCESS in 20m 47s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/95e0acf02dc04c94bebee1ee391a5605 : SUCCESS in 4m 20s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/d8a51360e46a49dd8bd8836ca3b2b4e3 : SUCCESS in 20m 02s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/276e0408f3024edfbc3a0f74be7da62f : SUCCESS in 10m 53s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9dd101e9b4fd4b4f805dae0caec5945d : SUCCESS in 32m 34s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/064f3077f7804abc81b3d523cbcdf5df : SUCCESS in 10m 19s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e22fa270612e41af93543c17d1e82725 : SUCCESS in 7m 55s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/8bbe1248cb8f46e99e9cfdbee448f3a4 : SUCCESS in 8m 03s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0d5c0782bae84c168f73e396f743a30b : SUCCESS in 9m 25s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/2ba1d96f6fe3450eb2f3d851c9b178d6 : SUCCESS in 10m 20s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7feef6cef5b74213acbbead7e1ae0b60 : SUCCESS in 3m 30s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/f486fc94398f462a8472cfd38e237830 : FAILURE in 7m 53s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/9bd6d088c3b740fc8793c06a094c6bb4 : SUCCESS in 6m 10s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/59fa35f491284103805f62344490c13f : SUCCESS in 38m 55s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2ce5d73c1eea4351a3b8989d55d3e407 : SUCCESS in 58m 31s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b7034882e7e5447196e3c3544e54e2b7 : SUCCESS in 27m 44s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/588722b1c25d45459999f26dfa35ad99 : SUCCESS in 28m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/45660a7a3a084c719420b6b8d06a7a4f : SUCCESS in 2m 48s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/df53b561040a490d82606c6071d07cd3 : SUCCESS in 8m 47s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/77f4bbb681af409bbe8712b62af62842 : SUCCESS in 1h 00m 45s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":4},{"id":"ab80516af5d97b2b0f249747a38eaaa5e831d8f5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-21 13:18:52.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fe106d43f2ff4827ad1e6084d7b3308c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/0fb75cde3fce4757bac9ecec4f5a9bd0 : SUCCESS in 1h 36m 39s","accounts_in_message":[],"_revision_number":4},{"id":"82993ffd7a57b164c43fbbfda60da1acbbc8c4b5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-08-21 15:31:04.000000000","message":"Patch Set 5: Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"685d9bf154b7be9b0b4146195d6ffd75b092305c","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-21 16:37:28.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e55f6a49beaa4061b1cd8211ea377ec0\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/13bd21365e094d8591d19aee548d6d36 : SUCCESS in 58m 31s","accounts_in_message":[],"_revision_number":5},{"id":"2e6c139e046adee4a938f0f0026d7df835a4162f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-21 16:41:14.000000000","message":"Patch Set 5: 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/99ba286cbe404f32ba1c4d05fce082bd\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b2d400dd2ed04bdc982654af5be6c4ae : SUCCESS in 10m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4a7ad2317b624ef7b96cd765897bd221 : SUCCESS in 10m 40s\n- grenade https://zuul.opendev.org/t/openstack/build/6ee4264989d14485ae5f29a37ac17f99 : SUCCESS in 31m 54s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5f00f2c0a87b4eaf9f4a6a27c643f1c7 : FAILURE in 33m 54s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/bcc8c94034334f608242b32de133996d : SUCCESS in 54m 22s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/267df7f9ce9e43b1aa01b5fad8ee1544 : SUCCESS in 1h 03m 55s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0a1bdef5facc4fb5ae3c78369ee5d3e6 : SUCCESS in 19m 32s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a47d7b1c4f484502aaa7e8a7049f3a27 : SUCCESS in 11m 10s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/30c140ee9f00488b8fef270442de911c : SUCCESS in 11m 12s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1e5664677ff24ef9ab1f14b2f9bd59a5 : SUCCESS in 6m 04s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/5c91503fdb8241b393f6878019f491a6 : SUCCESS in 24m 06s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/2c574c09b3b94a4185a7d81da541574c : SUCCESS in 18m 55s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/c343c50b4a6b4cfbbd239c9e73130fbb : SUCCESS in 33m 16s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/289400b43c23473995fa49b9bf199c2a : SUCCESS in 9m 20s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a16abf7592bd4be5a4a9b7101bef9c61 : SUCCESS in 8m 36s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/fe580e5b7dc14c8d87cc45da1ed4d8be : SUCCESS in 14m 50s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/fe9251ffabf749f2b15a381ed2e42657 : SUCCESS in 8m 43s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/7816247f677a433b92aa69b037605995 : SUCCESS in 9m 34s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/068e92998e224390a327bd93e1429a6f : SUCCESS in 6m 22s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/d73061870a4941c8af201cd9bb29652f : FAILURE in 7m 47s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/d534f468b21049908b249ecb766d5297 : SUCCESS in 4m 55s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d18d42fa6fb04baf9447b357802a3dfb : SUCCESS in 59m 10s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f9dcdf215cca49ceaaa1be27be657808 : SUCCESS in 27m 22s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ad84d9d76e1b4cc8a5ca4c69de87cc94 : SUCCESS in 23m 16s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/28e7357978cd401a92313bd4dac58a5f : SUCCESS in 27m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/829f2c1e9ce843fd9644978fa50cc80d : SUCCESS in 3m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e89fe83fe7964638a157eccff02d8cfa : SUCCESS in 20m 32s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/61955334c9cd4040afc0c48dd149088c : SUCCESS in 46m 38s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":5},{"id":"552b6b95767ea655442a7bc5495956a85a12381c","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-08-22 02:04:47.000000000","message":"Patch Set 5: Code-Review+2\n\n(26 comments)","accounts_in_message":[],"_revision_number":5},{"id":"6dab9fe77a4f91c652704ab97346de0fd074a7f5","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-24 08:31:18.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"cc2c13894d913ac9513c9e1b2ac8e1eda4af8822","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 09:36:29.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1ebf6389763c45ab8fe0b0e424eab901\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/97ac4cda3890457dbd8b0062c3dddcdc : SUCCESS in 40m 57s","accounts_in_message":[],"_revision_number":5},{"id":"811c12f7e57b0f64396f63ddf1e3307e96113e2d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 09:49:37.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5e7289b46d3b4f189bdb365562675825\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d7b53f5c14904687903c0ee77beb8cc2 : SUCCESS in 10m 53s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ceffaaf47f7446439972bd5984491120 : SUCCESS in 10m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/5f9f2d54fe484dba9ac757669cd32513 : SUCCESS in 57m 55s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/a0312bc954ed4ccab83733376d336083 : SUCCESS in 33m 00s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/91d0919570be442cb0bc2c4344d2016e : SUCCESS in 28m 29s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6297b096640e4e45b47a5b834c25dcfe : SUCCESS in 49m 24s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/142b586c0e7a454a9fee200cbeab6395 : SUCCESS in 19m 35s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/344236bdec9f415db4296e5bcaca3f5f : SUCCESS in 11m 53s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a144c40ee57c432a83bd9c8b3f0ccff4 : SUCCESS in 12m 19s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3d5d69dc98524d4598dcd9b25e20e92e : SUCCESS in 9m 02s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0901d5c95a4f4986857e1334698cacc3 : SUCCESS in 26m 30s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/d86aabc0361244bc90e9c8791c94751f : SUCCESS in 14m 44s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/d5d690eadbc046ebb136fb7a78606f35 : SUCCESS in 32m 29s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/8dc7cd5dc6744a8a92b118dee3663f02 : SUCCESS in 24m 41s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5eec96cf72d04249a0c391ef350b597c : SUCCESS in 16m 31s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/be65e56257034facb142482dc2f5a68f : SUCCESS in 15m 10s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/fe2a7f3395ec49b790e18a037086fbc7 : SUCCESS in 16m 16s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/59f3a6cd54d54db38aebe4e4c51ce777 : SUCCESS in 14m 13s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/960e055fcceb4b0c9a4f9382d570973d : SUCCESS in 4m 41s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/923919b6a9474b35a6506d0bc9b308b1 : FAILURE in 8m 19s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7ef900f58af54e3a8421b71474073bff : SUCCESS in 8m 24s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/45fe7a98594d48fea825df62ae1f9cf7 : SUCCESS in 56m 09s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/37af5b567e794006ac4383a461e0b6e5 : SUCCESS in 55m 40s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1c2b385550bb4c5ebb5f66e3ff152c6b : SUCCESS in 55m 31s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/756b3995057447cdb3a6babc494a5eb2 : SUCCESS in 34m 04s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3e18a4141ad54af1bb1288cb3ed9f818 : SUCCESS in 4m 39s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7e63ec5c0dfc4d78b902b1caf032f3dc : SUCCESS in 26m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/29b5a636b6cd48d0b8f584d583735a0d : SUCCESS in 1h 05m 49s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":5},{"id":"d81aa67fe12cd4e278247f3f5cf420fd322defa3","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-24 15:06:25.000000000","message":"Patch Set 5: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"0b0bd3cabf2918f9bbc06e6d76c27a13c3d8c575","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-24 15:16:49.000000000","message":"Patch Set 5:\n\n(17 comments)","accounts_in_message":[],"_revision_number":5},{"id":"a7806854be44fc82c1296c38f7b2867e864677dc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-24 15:20:33.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review+1, Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"827e4628f50d927f377ae940af81f7a5d1da30cf","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 17:05:34.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a3572e73e99148e6b5488d6fbc612164\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c805f6ddc3244dc9b7d2c5f52aaae983 : SUCCESS in 9m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ede8e03086584ad58d55d220c7ae1a9c : SUCCESS in 10m 25s\n- grenade https://zuul.opendev.org/t/openstack/build/c6ee10f34967440fb59aa06b44ae0020 : SUCCESS in 1h 07m 29s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/088bf6508ce24ec08a33cdf79d8b7f71 : SUCCESS in 1h 12m 35s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/fce4700763c44f0f96bfbd2356a85d23 : SUCCESS in 30m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/37b1a601b3594f7bbbf9fb3b0d565080 : SUCCESS in 57m 08s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2dce84eae32740bab81114a25c62f2d5 : SUCCESS in 20m 13s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/040a8b5ba014403d90c759cbbe068a3d : SUCCESS in 24m 25s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1c562f6812f343cabdbdc08631cee1d4 : SUCCESS in 21m 36s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c764ab5d12ed4dc2b527043733f5574b : SUCCESS in 7m 03s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/201e5c6633604e15aa58607fd3d7a437 : SUCCESS in 11m 39s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/08dc12d6702a4aafb90f82ac55971d73 : SUCCESS in 20m 53s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/b16eb1133bf04da6a984cf8d90a764c8 : SUCCESS in 26m 21s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/43fae4472fb54623979babb11153f0d1 : SUCCESS in 15m 18s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c1aa1b7306e34ed9949c30171d64a059 : SUCCESS in 15m 59s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/0ec07b6cbf6e46c499f008168a4c7b19 : SUCCESS in 13m 53s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/baf4c14644454497b33cb68e62013386 : SUCCESS in 13m 47s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/139e03d51d174517b63d9bfa21f7f675 : SUCCESS in 18m 53s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/3fc7d2af0476471699049805df33ec40 : SUCCESS in 4m 25s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b4c3f373fecc4ad28e99763a85839c81 : FAILURE in 6m 57s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1b1ed03292384608827e99fe01a1d7a9 : SUCCESS in 11m 28s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/32486f998e654a67955eeb4748a91e9f : SUCCESS in 1h 04m 26s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1acbc033c905408f8739b0f3a5c0d980 : SUCCESS in 25m 16s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/7bdb3a72e65942a3a572840bb4a91428 : SUCCESS in 58m 10s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e4c1e0ec502a4c9eae9a31911d768a7d : SUCCESS in 20m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/09d90da129094624acc1078dd3f584c9 : SUCCESS in 3m 23s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/4603ad3d4adc4a80876074e581e9821d : SUCCESS in 25m 36s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3b88b5eee5514efe9b9547eb66512a97 : SUCCESS in 1h 02m 34s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":6},{"id":"4c387ba3c0d3809ba30b0baf15d22c4dc70fae88","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-24 18:01:04.000000000","message":"Patch Set 6:\n\n(2 comments)","accounts_in_message":[],"_revision_number":6},{"id":"f2388977d334ff98e9aa16b4fe94c79665c004ea","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-24 18:45:07.000000000","message":"Patch Set 6: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"5f1aff4c32b5af95decf588f4fea8234f8da933e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 18:45:38.000000000","message":"Patch Set 6: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":6},{"id":"e94a79b275b75473a48bc2db4efcf3605185c567","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 19:41:11.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e323df6a196e4e7d9e89cf06e57239bf\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8da764e68dd646b680bfe361905f0933 : SUCCESS in 1h 09m 40s","accounts_in_message":[],"_revision_number":6},{"id":"ee64c3f85e71170c9533383a6665568e35d5c42d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 20:22:23.000000000","message":"Patch Set 6: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f97e22ce3331413f96f75c45bad0eed4\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4c0e2b7f9f2041cb863c36d6ec32068b : SUCCESS in 9m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/446d057630af4b6394b37e465b1d29cc : SUCCESS in 9m 00s\n- grenade https://zuul.opendev.org/t/openstack/build/9e096cffdd434139b120a261f6ddb6bd : SUCCESS in 51m 16s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/bb25bf031209456889ec98fc46987e74 : SUCCESS in 1h 01m 51s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/4d8bf30ac8234bef93db10ff147e93b2 : SUCCESS in 35m 06s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/34bc55656df846439bb546388439912f : SUCCESS in 1h 04m 12s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/82f7db18e4cb4936b4e7e2eda59b7a17 : SUCCESS in 6m 21s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/1d611de9b5ec477da585705f2ad330a3 : SUCCESS in 25m 51s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/8c8c198e9b4f4658809795636a36b11c : SUCCESS in 21m 35s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6b01767c0b074da8bdcfa40a01f8e347 : SUCCESS in 36m 03s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/a2b90ccdcbb24c4f8d72382d92d5ddbb : SUCCESS in 9m 03s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/2e6917bd2eab4441a1022aafe34d3412 : SUCCESS in 14m 28s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/f9a8f111eb9843ad9dd5435096370726 : SUCCESS in 17m 17s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ee293d2ff4824417bcd6ee21c896945a : SUCCESS in 15m 26s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a9fe034cd07749168f7ba55afd477e80 : SUCCESS in 6m 06s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/3ec9b759387144e8bfb9d67649e263be : SUCCESS in 6m 24s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/86ceaf1f5fd6478a9150b3c9b1cd50e8 : SUCCESS in 1h 01m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f62c27ad077b44d496fe65b1a9c8cd71 : SUCCESS in 53m 34s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/a245d83fbc7b4c04a8f909fe45fd6b96 : SUCCESS in 30m 36s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/fbc85274a6fd4ec3a9b4330e48f90b71 : SUCCESS in 10m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/223b2955b71d4e32806030926daceaa8 : SUCCESS in 2m 26s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c0cab2feb557427f8841923b3fa70b2a : SUCCESS in 18m 56s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8c54da7337b646f1bdc5cebb07030ba4 : SUCCESS in 53m 25s","accounts_in_message":[],"_revision_number":6},{"id":"045b224296d4fb2a9416e0ad286d99586bb29e97","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 20:22:24.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":6},{"id":"12c2786597d7a466a17582fede101e55eb6eaf66","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-24 20:23:22.000000000","message":"Patch Set 6:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/123dbbc938de4f48a87d23915e87d54f\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3f8572c6fe1f45328228d2152c3b4ab5 : SUCCESS in 45s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/a827304bd73f4dab836df7bcba0ba2f3 : SUCCESS in 41s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"be24322bc6cca3922bff73751b67b1c1bb05701c","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-08-24 21:33:36.000000000","message":"Patch Set 6: Code-Review+2 Workflow+1\n\n(15 comments)","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"a43a5f4edc99ececfb903da6665c0abe9a564ea1","revisions":{"ccef8b3ab8d323a6dcbe46f6fb3488c1880352c0":{"kind":"REWORK","_number":1,"created":"2026-08-20 16:59:14.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/06/1001706/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/06/1001706/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/06/1001706/1"}}},"commit":{"parents":[{"commit":"e19c896da0eeaf09419726106c46acc3e8bdce39","subject":"Merge \"s3api: restrict headers sent with copy check HEAD request\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e19c896da0eeaf09419726106c46acc3e8bdce39"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-07-30 20:42:31.000000000","tz":-420},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-20 16:51:44.000000000","tz":60},"subject":"s3api: don\u0027t copy all s3api sysmeta when copying objects","message":"s3api: don\u0027t copy all s3api sysmeta when copying objects\n\nPreviously, when an object was copied, the copy middleware copied all\nsysmeta headers from the source GET response to the destination PUT\nrequest. This implicitly assumed that all sysmeta was valid for the\ndestination object, which may not be the case.\n\nWhen copying an object that was created as an s3api MultipartUpload,\nthe x-object-sysmeta-s3api-etag value was copied to the destination\nobject. This symeta then determined the destination etag when reported\nvia an s3api GET/HEAD request. This is not compatible with AWS S3,\nwhich makes the destination etag equal to the md5 hash of the\ncontent. Furthermore, the destination object\u0027s etag in the container\nlisting would be the (correct) content md5 hash, inconsistent with the\nGET/HEAD response value.\n\nSupport for a copy hook callback is added to the copy middleware. The\ncopy hook provides a mechanism for middlewares to explicitly manage\nthe copying (or not) of sysmeta for which they are responsible. An\ns3api copy hook is therefore used to ensure that only appropriate\ns3api sysmeta is copied. The copy middleware is not changed; the hook\nis called after the copy middleware has copied headers from the source\nresponse to sink request, so the copy hook must remove inappropriate\nsysmeta from the sink request.\n\nPreviously, during an UploadPartCopy request, the original PUT request\nwas given s3api sysmeta headers that were set to the empty string (see\nthe Related-Change). This had the effect of over-writing any s3api\nsysmeta headers copied from the source response, but persisting empty\nsysmeta values in the destination part\u0027s metadata. The s3api copy hook\nintroduced by this patch removes the need for this header overwriting.\n\nWhen s3_acl is True, an object PUT via the s3api and then copied with\nthe swift API previously had its X-Object-Sysmeta-S3Api-Acl header\ncopied and then potentially overwritten by the same header from the\noriginal PUT request. This behaviour is now implemented explicitly in\nthe s3api copy hook.\n\nRelated-Change: Id33a7ab9d0b8f33fede73eae540d6137708e1218\nChange-Id: Ib0f89646034fd7ab8f3806b97e5ec4526907190a\nCloses-Bug: #2163751\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-authored-by: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ccef8b3ab8d323a6dcbe46f6fb3488c1880352c0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ccef8b3ab8d323a6dcbe46f6fb3488c1880352c0"}]},"branch":"refs/heads/master"},"1e23e0b98c5d8523760e8c3fbd6e3d10386cc694":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-08-20 17:27:10.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/06/1001706/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/06/1001706/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/06/1001706/2"}}},"commit":{"parents":[{"commit":"e19c896da0eeaf09419726106c46acc3e8bdce39","subject":"Merge \"s3api: restrict headers sent with copy check HEAD request\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e19c896da0eeaf09419726106c46acc3e8bdce39"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-07-30 20:42:31.000000000","tz":-420},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-20 17:24:43.000000000","tz":60},"subject":"s3api: don\u0027t copy all s3api sysmeta when copying objects","message":"s3api: don\u0027t copy all s3api sysmeta when copying objects\n\nPreviously, when an object was copied, the copy middleware copied all\nsysmeta headers from the source GET response to the destination PUT\nrequest. This implicitly assumed that all sysmeta was valid for the\ndestination object, which may not be the case.\n\nWhen copying an object that was created as an s3api MultipartUpload,\nthe x-object-sysmeta-s3api-etag value was copied to the destination\nobject. This symeta then determined the destination etag when reported\nvia an s3api GET/HEAD request. This is not compatible with AWS S3,\nwhich makes the destination etag equal to the md5 hash of the\ncontent. Furthermore, the destination object\u0027s etag in the container\nlisting would be the (correct) content md5 hash, inconsistent with the\nGET/HEAD response value.\n\nSupport for a copy hook callback is added to the copy middleware. The\ncopy hook provides a mechanism for middlewares to explicitly manage\nthe copying (or not) of sysmeta for which they are responsible. An\ns3api copy hook is therefore used to ensure that only appropriate\ns3api sysmeta is copied. The copy middleware is not changed; the hook\nis called after the copy middleware has copied headers from the source\nresponse to sink request, so the copy hook must remove inappropriate\nsysmeta from the sink request.\n\nPreviously, during an UploadPartCopy request, the original PUT request\nwas given s3api sysmeta headers that were set to the empty string (see\nthe Related-Change). This had the effect of over-writing any s3api\nsysmeta headers copied from the source response, but persisting empty\nsysmeta values in the destination part\u0027s metadata. The s3api copy hook\nintroduced by this patch removes the need for this header overwriting.\n\nWhen s3_acl is True, an object PUT via the s3api and then copied with\nthe s3api previously had its X-Object-Sysmeta-S3Api-Acl header copied\nand then potentially overwritten by the same header from the original\nPUT request by virtue of the copy middleware sysmeta handling. This\nbehaviour is now implemented explicitly in the s3api copy hook.\n\nRelated-Change: Id33a7ab9d0b8f33fede73eae540d6137708e1218\nChange-Id: Ib0f89646034fd7ab8f3806b97e5ec4526907190a\nCloses-Bug: #2163751\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-authored-by: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1e23e0b98c5d8523760e8c3fbd6e3d10386cc694"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1e23e0b98c5d8523760e8c3fbd6e3d10386cc694"}]},"branch":"refs/heads/master"},"94ac31e6ce7fd53cac66b0d22861c306173f6b45":{"kind":"REWORK","_number":3,"created":"2026-08-21 08:46:30.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/06/1001706/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/06/1001706/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/06/1001706/3"}}},"commit":{"parents":[{"commit":"e19c896da0eeaf09419726106c46acc3e8bdce39","subject":"Merge \"s3api: restrict headers sent with copy check HEAD request\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e19c896da0eeaf09419726106c46acc3e8bdce39"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-07-30 20:42:31.000000000","tz":-420},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-21 08:46:01.000000000","tz":60},"subject":"s3api: don\u0027t copy all s3api sysmeta when copying objects","message":"s3api: don\u0027t copy all s3api sysmeta when copying objects\n\nPreviously, when an object was copied, the copy middleware copied all\nsysmeta headers from the source GET response to the destination PUT\nrequest. This implicitly assumed that all sysmeta was valid for the\ndestination object, which may not be the case.\n\nWhen copying an object that was created as an s3api MultipartUpload,\nthe x-object-sysmeta-s3api-etag value was copied to the destination\nobject. This symeta then determined the destination etag when reported\nvia an s3api GET/HEAD request. This is not compatible with AWS S3,\nwhich makes the destination etag equal to the md5 hash of the\ncontent. Furthermore, the destination object\u0027s etag in the container\nlisting would be the (correct) content md5 hash, inconsistent with the\nGET/HEAD response value.\n\nSupport for a copy hook callback is added to the copy middleware. The\ncopy hook provides a mechanism for middlewares to explicitly manage\nthe copying (or not) of sysmeta for which they are responsible. An\ns3api copy hook is therefore used to ensure that only appropriate\ns3api sysmeta is copied. The copy middleware is not changed; the hook\nis called after the copy middleware has copied headers from the source\nresponse to sink request, so the copy hook must remove inappropriate\nsysmeta from the sink request.\n\nPreviously, during an UploadPartCopy request, the original PUT request\nwas given s3api sysmeta headers that were set to the empty string (see\nthe Related-Change). This had the effect of over-writing any s3api\nsysmeta headers copied from the source response, but persisting empty\nsysmeta values in the destination part\u0027s metadata. The s3api copy hook\nintroduced by this patch removes the need for this header overwriting.\n\nWhen s3_acl is True, an object PUT via the s3api and then copied with\nthe s3api previously had its X-Object-Sysmeta-S3Api-Acl header copied\nand then potentially overwritten by the same header from the original\nPUT request by virtue of the copy middleware sysmeta handling. This\nbehaviour is now implemented explicitly in the s3api copy hook.\n\nRelated-Change: Id33a7ab9d0b8f33fede73eae540d6137708e1218\nChange-Id: Ib0f89646034fd7ab8f3806b97e5ec4526907190a\nCloses-Bug: #2163751\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-authored-by: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/94ac31e6ce7fd53cac66b0d22861c306173f6b45"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/94ac31e6ce7fd53cac66b0d22861c306173f6b45"}]},"branch":"refs/heads/master"},"3ef6bfb0635092296a2439c724d48a2d60dea07c":{"kind":"REWORK","_number":4,"created":"2026-08-21 11:19:07.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/06/1001706/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/06/1001706/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/06/1001706/4"}}},"commit":{"parents":[{"commit":"e19c896da0eeaf09419726106c46acc3e8bdce39","subject":"Merge \"s3api: restrict headers sent with copy check HEAD request\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e19c896da0eeaf09419726106c46acc3e8bdce39"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-07-30 20:42:31.000000000","tz":-420},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-21 11:18:19.000000000","tz":60},"subject":"s3api: don\u0027t copy all s3api sysmeta when copying objects","message":"s3api: don\u0027t copy all s3api sysmeta when copying objects\n\nPreviously, when an object was copied, the copy middleware copied all\nsysmeta headers from the source GET response to the destination PUT\nrequest. This implicitly assumed that all sysmeta was valid for the\ndestination object, which may not be the case.\n\nWhen copying an object that was created as an s3api MultipartUpload,\nthe x-object-sysmeta-s3api-etag value was copied to the destination\nobject. This symeta then determined the destination etag when reported\nvia an s3api GET/HEAD request. This is not compatible with AWS S3,\nwhich makes the destination etag equal to the md5 hash of the\ncontent. Furthermore, the destination object\u0027s etag in the container\nlisting would be the (correct) content md5 hash, inconsistent with the\nGET/HEAD response value.\n\nSupport for a copy hook callback is added to the copy middleware. The\ncopy hook provides a mechanism for middlewares to explicitly manage\nthe copying (or not) of sysmeta for which they are responsible. An\ns3api copy hook is therefore used to ensure that only appropriate\ns3api sysmeta is copied. The copy middleware is not changed; the hook\nis called after the copy middleware has copied headers from the source\nresponse to sink request, so the copy hook must remove inappropriate\nsysmeta from the sink request.\n\nPreviously, during an UploadPartCopy request, the original PUT request\nwas given s3api sysmeta headers that were set to the empty string (see\nthe Related-Change). This had the effect of over-writing any s3api\nsysmeta headers copied from the source response, but persisting empty\nsysmeta values in the destination part\u0027s metadata. The s3api copy hook\nintroduced by this patch removes the need for this header overwriting.\n\nWhen s3_acl is True, an object PUT via the s3api and then copied with\nthe s3api previously had its X-Object-Sysmeta-S3Api-Acl header copied\nand then potentially overwritten by the same header from the original\nPUT request by virtue of the copy middleware sysmeta handling. This\nbehaviour is now implemented explicitly in the s3api copy hook.\n\nRelated-Change: Id33a7ab9d0b8f33fede73eae540d6137708e1218\nChange-Id: Ib0f89646034fd7ab8f3806b97e5ec4526907190a\nCloses-Bug: #2163751\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-authored-by: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3ef6bfb0635092296a2439c724d48a2d60dea07c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3ef6bfb0635092296a2439c724d48a2d60dea07c"}]},"branch":"refs/heads/master"},"8c3f615c9f9b3d361e7e6f14552f7717376f1081":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2026-08-21 15:31:04.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/06/1001706/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/06/1001706/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/06/1001706/5"}}},"commit":{"parents":[{"commit":"e19c896da0eeaf09419726106c46acc3e8bdce39","subject":"Merge \"s3api: restrict headers sent with copy check HEAD request\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e19c896da0eeaf09419726106c46acc3e8bdce39"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-07-30 20:42:31.000000000","tz":-420},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-08-21 15:30:59.000000000","tz":0},"subject":"s3api: don\u0027t copy all s3api sysmeta when copying objects","message":"s3api: don\u0027t copy all s3api sysmeta when copying objects\n\nPreviously, when an object was copied, the copy middleware copied all\nsysmeta headers from the source GET response to the destination PUT\nrequest. This implicitly assumed that all sysmeta was valid for the\ndestination object, which may not be the case.\n\nWhen copying an object that was created as an s3api MultipartUpload,\nthe x-object-sysmeta-s3api-etag value was copied to the destination\nobject. This sysmeta then determined the destination etag when reported\nvia an s3api GET/HEAD request. This is not compatible with AWS S3,\nwhich makes the destination etag equal to the md5 hash of the\ncontent. Furthermore, the destination object\u0027s etag in the container\nlisting would be the (correct) content md5 hash, inconsistent with the\nGET/HEAD response value.\n\nSupport for a copy hook callback is added to the copy middleware. The\ncopy hook provides a mechanism for middlewares to explicitly manage\nthe copying (or not) of sysmeta for which they are responsible. An\ns3api copy hook is therefore used to ensure that only appropriate\ns3api sysmeta is copied. The copy middleware is not changed; the hook\nis called after the copy middleware has copied headers from the source\nresponse to sink request, so the copy hook must remove inappropriate\nsysmeta from the sink request.\n\nPreviously, during an UploadPartCopy request, the original PUT request\nwas given s3api sysmeta headers that were set to the empty string (see\nthe Related-Change). This had the effect of over-writing any s3api\nsysmeta headers copied from the source response, but persisting empty\nsysmeta values in the destination part\u0027s metadata. The s3api copy hook\nintroduced by this patch removes the need for this header overwriting.\n\nWhen s3_acl is True, an object PUT via the s3api and then copied with\nthe s3api previously had its X-Object-Sysmeta-S3Api-Acl header copied\nand then potentially overwritten by the same header from the original\nPUT request by virtue of the copy middleware sysmeta handling. This\nbehaviour is now implemented explicitly in the s3api copy hook.\n\nRelated-Change: Id33a7ab9d0b8f33fede73eae540d6137708e1218\nChange-Id: Ib0f89646034fd7ab8f3806b97e5ec4526907190a\nCloses-Bug: #2163751\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-authored-by: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8c3f615c9f9b3d361e7e6f14552f7717376f1081"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8c3f615c9f9b3d361e7e6f14552f7717376f1081"}]},"branch":"refs/heads/master","description":"Edit commit message"},"a43a5f4edc99ececfb903da6665c0abe9a564ea1":{"kind":"REWORK","_number":6,"created":"2026-08-24 15:20:33.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/06/1001706/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/06/1001706/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1001706/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/06/1001706/6"}}},"commit":{"parents":[{"commit":"e19c896da0eeaf09419726106c46acc3e8bdce39","subject":"Merge \"s3api: restrict headers sent with copy check HEAD request\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e19c896da0eeaf09419726106c46acc3e8bdce39"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-07-30 20:42:31.000000000","tz":-420},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-24 15:18:47.000000000","tz":60},"subject":"s3api: don\u0027t copy all s3api sysmeta when copying objects","message":"s3api: don\u0027t copy all s3api sysmeta when copying objects\n\nPreviously, when an object was copied, the copy middleware copied all\nsysmeta headers from the source GET response to the destination PUT\nrequest. This implicitly assumed that all sysmeta was valid for the\ndestination object, which may not be the case.\n\nWhen copying an object that was created as an s3api MultipartUpload,\nthe x-object-sysmeta-s3api-etag value was copied to the destination\nobject. This sysmeta then determined the destination etag when reported\nvia an s3api GET/HEAD request. This is not compatible with AWS S3,\nwhich makes the destination etag equal to the md5 hash of the\ncontent. Furthermore, the destination object\u0027s etag in the container\nlisting would be the (correct) content md5 hash, inconsistent with the\nGET/HEAD response value.\n\nSupport for a copy hook callback is added to the copy middleware. The\ncopy hook provides a mechanism for middlewares to explicitly manage\nthe copying (or not) of sysmeta for which they are responsible. An\ns3api copy hook is therefore used to ensure that only appropriate\ns3api sysmeta is copied. The copy middleware is not changed; the hook\nis called after the copy middleware has copied headers from the source\nresponse to sink request, so the copy hook must remove inappropriate\nsysmeta from the sink request.\n\nPreviously, during an UploadPartCopy request, the original PUT request\nwas given s3api sysmeta headers that were set to the empty string (see\nthe Related-Change). This had the effect of over-writing any s3api\nsysmeta headers copied from the source response, but persisting empty\nsysmeta values in the destination part\u0027s metadata. The s3api copy hook\nintroduced by this patch removes the need for this header overwriting.\n\nWhen s3_acl is True, an object PUT via the s3api and then copied with\nthe s3api previously had its X-Object-Sysmeta-S3Api-Acl header copied\nand then potentially overwritten by the same header from the original\nPUT request by virtue of the copy middleware sysmeta handling. This\nbehaviour is now implemented explicitly in the s3api copy hook.\n\nRelated-Change: Id33a7ab9d0b8f33fede73eae540d6137708e1218\nChange-Id: Ib0f89646034fd7ab8f3806b97e5ec4526907190a\nCloses-Bug: #2163751\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-authored-by: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a43a5f4edc99ececfb903da6665c0abe9a564ea1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a43a5f4edc99ececfb903da6665c0abe9a564ea1"}]},"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":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}}]}],"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":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"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":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"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":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
