)]}'
{"id":"openstack%2Fswift~1002249","triplet_id":"openstack%2Fswift~master~If4755c29e758dda4dcada1281f98b23509d82c12","project":"openstack/swift","branch":"master","topic":"s3-checksum-persistence","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-08-25 15:28:53.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"If4755c29e758dda4dcada1281f98b23509d82c12","subject":"object_versioning: test footer callbacks on overwrite","status":"MERGED","created":"2026-08-25 10:13:07.000000000","updated":"2026-08-25 15:32:46.000000000","submitted":"2026-08-25 15:28:53.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1002249-s3-checksum-persistence","meta_rev_id":"29dded0249dc8e441590d7fc612264707ceb5806","_number":1002249,"virtual_id_number":1002249,"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"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-25 15:28:52.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-25 13:23:21.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"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-25 13:23:21.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"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":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-25 11:21:39.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-25 13:23:21.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":"9368e0842f3767253124316866ae441d6ab3052b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-25 10:13:07.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"04931860cfd50f30c4d61b66ad9de332ec6d57c1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 11:21:39.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/781c479a32084de68e6d9bba709bfb90\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/36e89f3a814e41848e37f1bfb16183a1 : SUCCESS in 9m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/cefec095a90447bd8340f9e2e7025777 : SUCCESS in 9m 35s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c6b1d4fc69e7480a861c2741fa015ceb : SUCCESS in 22m 36s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/45121829fba5417896b668bdd1d4e0fd : SUCCESS in 21m 18s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/dcefcf485c54453d8a282d443a5a5e2b : SUCCESS in 25m 57s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3a28b524641040d2b9ffad7800b255d3 : SUCCESS in 7m 50s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/024dcc43dec74daaa3ca78eeb5cb5c7d : SUCCESS in 27m 40s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/d18108ce181741f3b57f43704afed255 : SUCCESS in 21m 06s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/b95de2d3a5ef418fa6793e10d6df3c52 : SUCCESS in 30m 46s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/fd2c6706553e490da83ebbd8b1ff71d1 : SUCCESS in 20m 12s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8f5d5a6286574c028f1169f77c41a401 : SUCCESS in 15m 10s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/5aa4cfd2f2ec4f46aec0fb4496ae641b : SUCCESS in 15m 00s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/499a6f70915f4e32b03f8cff03daa597 : SUCCESS in 16m 02s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/129f23a8661343cfb74f6d74ac7b1077 : SUCCESS in 18m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6d3135eb89c54717bea47b8cdaf77542 : SUCCESS in 1h 00m 41s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/72aebd6376154c7d91daca7d96285170 : SUCCESS in 50m 09s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/7a9385e414414fd0a41606061558fe36 : SUCCESS in 28m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/88d11432e6a94a53a74c0f6ba483b1aa : SUCCESS in 4m 08s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a0ae23a498344f29a7608a34915abc39 : SUCCESS in 19m 24s\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":1},{"id":"97e5e3dbdc29e92766b71a8af3cebe5f528d030a","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-25 13:23:21.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"a324b19eab6f85a86bc3c411068b0f6a12529885","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 13:25:25.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"5b3147ca2faed71bced43ac9734225cd6fab661c","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 13:42:04.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9b0bdb6bb348466186fb5d39ca79b5d9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/0621ad2d13cd413eba62f3f7198a2c7f : SUCCESS in 1h 13m 17s","accounts_in_message":[],"_revision_number":1},{"id":"34f887c0f9fee16c3bc83ab3c308c5125ac25f1f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 15:28:52.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bbb629c30e8e4b638fb2ec1b656ab42e\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/50d32eb670f043ca892a2c15e6a07083 : SUCCESS in 10m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4411622fb04c41a8a0d38858cf79e7d0 : SUCCESS in 9m 42s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/7bafc9f3e62347b286d37df9237505a3 : SUCCESS in 8m 25s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b43849c1d51d4ee4aec070ba463ae76f : SUCCESS in 26m 07s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/dd04a12c75c34c0189e610db240d07b5 : SUCCESS in 23m 15s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/87b22bb3ed364ccc88fc1d5595a14d05 : SUCCESS in 27m 05s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/8324c715956b406393989d1c2ea013c8 : SUCCESS in 24m 40s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/afb45a13068e4a03881f20ff68da0e6e : SUCCESS in 8m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d1b53958cf8f481fa600d63002ed5e26 : SUCCESS in 11m 19s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7b8eaff6ef734295b096b5916c986396 : SUCCESS in 14m 02s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c14e6664cb0b4a4cb7e1cee9e68d1b3c : SUCCESS in 8m 49s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7bb4f30844374790a0ceffb7015866d7 : SUCCESS in 9m 14s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/327b3271ae594b9197782620f6bb5252 : SUCCESS in 56m 40s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4b745d45ac0d42c39def66e40d9b1e69 : SUCCESS in 49m 27s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4c62113f458b4242ab561b22f28cba2c : SUCCESS in 34m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dcaf2be59018431b9ef51c810e3130d2 : SUCCESS in 4m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fb6ebcfc14c64f6891804d0b5ff84ea8 : SUCCESS in 19m 36s","accounts_in_message":[],"_revision_number":1},{"id":"0d727cd7dbaca377f1a5b6d152910b1a82a4fd45","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 15:28:53.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"29dded0249dc8e441590d7fc612264707ceb5806","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 15:32:46.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/870b9179628c4f76b4bcb421d8a05060\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f65e8a0eef45431b95571dea63f30419 : SUCCESS in 1m 03s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/79f4b93795a54d88bf70b57b0fa57e1d : SUCCESS in 58s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"741bc6380b55d4aef16f5ad1d7ef6d12debf5111","revisions":{"741bc6380b55d4aef16f5ad1d7ef6d12debf5111":{"kind":"REWORK","_number":1,"created":"2026-08-25 10:13:07.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/49/1002249/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/49/1002249/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/1002249/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/1002249/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/49/1002249/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/49/1002249/1"}}},"commit":{"parents":[{"commit":"89466815d5c2ab7dbd50f4d17acbb0307f7335a5","subject":"versioning: pass footer callbacks into hidden container","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/89466815d5c2ab7dbd50f4d17acbb0307f7335a5"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-25 10:11:45.000000000","tz":60},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-25 10:11:45.000000000","tz":60},"subject":"object_versioning: test footer callbacks on overwrite","message":"object_versioning: test footer callbacks on overwrite\n\nThe existing footer callback test covers a PUT to a new object, where\nonly two backend PUTs are made. Overwriting an *unversioned* object\nadditionally makes _copy_current issue a PUT that copies the previous\nobject into the versions container, and that sub-request is built from\nthe client request\u0027s environ before the update_footers callback is\npopped from it.\n\nThat copy PUT is safe today only because make_env() forwards an\nexplicit allow-list of environ keys that does not include\nswift.callback.update_footers. Pin that down: assert the callback is\ninvoked exactly once, for the PUT that reads the client body, and that\nneither the copy PUT nor the symlink PUT gets the body-derived footer.\n\nChange-Id: If4755c29e758dda4dcada1281f98b23509d82c12\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/741bc6380b55d4aef16f5ad1d7ef6d12debf5111"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/741bc6380b55d4aef16f5ad1d7ef6d12debf5111"}]},"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":""}}}]}
