)]}'
{"id":"openstack%2Fswift~1000106","triplet_id":"openstack%2Fswift~master~I023d382c18d3454470bd246b6843c0f645e07616","project":"openstack/swift","branch":"master","attention_set":{},"removed_from_attention_set":{"6968":{"account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"last_update":"2026-08-11 13:44:07.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"I023d382c18d3454470bd246b6843c0f645e07616","subject":"sq? s3api: unquote GetObjectAttributes ETag, pass 304 through","status":"ABANDONED","created":"2026-08-07 14:42:48.000000000","updated":"2026-08-11 13:44:07.000000000","total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"b14c0c486d8336dc4039504df38f9e8779d5f218","_number":1000106,"virtual_id_number":1000106,"owner":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-08-07 15:48:11.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":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"recommended":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"all":[{"value":1,"date":"2026-08-07 20:31:42.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":"","value":1,"default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},{"_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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-07 15:48:11.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-07 20:31:42.000000000","updated_by":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"reviewer":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"state":"REVIEWER"}],"messages":[{"id":"55e21ea56ad93352d71372cafdd3815c1c9818db","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-07 14:42:48.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9774ac11ce451012056bbf7418b11e2f7c381b1a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-07 15:48:11.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f228b0e67d324f01b45107a0d81daddf\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/caac7e98308b491c8b21aaab61f5395a : SUCCESS in 4m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c2028c7ce71047e4a47f900cd0685e45 : SUCCESS in 3m 39s\n- grenade https://zuul.opendev.org/t/openstack/build/45463a81675849749ca2a62f82cbf924 : SUCCESS in 54m 30s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/6c4a104be879463e93bc20e6bf95c44c : SUCCESS in 1h 01m 53s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8dfa10a4109a44549cc26c67f2012e67 : SUCCESS in 40m 39s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/718e8dd9f60a428085f67dbc8d814bd8 : FAILURE in 50m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b237e76c35d047c688032c6d03f9cf41 : SUCCESS in 22m 17s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f7511fdfd15d47009b307a7482045018 : SUCCESS in 20m 50s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9e9f8d8de9a3469da8610e9c0cef30bc : SUCCESS in 18m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/2cdfdfa7d91a4180be087f1099b46983 : SUCCESS in 6m 43s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/dbed265696ea476d92320d5149816f9a : SUCCESS in 22m 22s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/48e17745116844469d6c2b4ec07ee820 : SUCCESS in 14m 18s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/38904b524d29477aa7c4a77e691c638c : SUCCESS in 30m 14s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/5a72c137d89c4381bc608a6963260427 : SUCCESS in 15m 01s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/418ffe2074aa47d5888b3842050de3c0 : SUCCESS in 14m 23s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/aac0954ea501423196095b86bad93ac2 : SUCCESS in 13m 10s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/c8e8b0193fa44238864884c0adaaae15 : SUCCESS in 15m 40s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/f4d9b5099b3f40da9cf8dcb50e600271 : SUCCESS in 18m 44s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6f15863709ca4f11bf840e2135c67fff : SUCCESS in 6m 26s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/ea5b2f2fd0b74c74bdbb3669b92a836b : FAILURE in 7m 49s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/848649e843f7441b999db1a9e20cb9e3 : FAILURE in 9m 44s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/bfb3702d84a144bdbb07ea680f882781 : SUCCESS in 59m 31s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5abc4dfda8544c08865e999e3849d29c : FAILURE in 31m 01s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8cf1aa6c96cd403b84bf1e957322ac25 : FAILURE in 32m 39s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/49b7bcb17eb44ca6ba1fdd0d9a131ea8 : SUCCESS in 20m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4999afdaf19a4252ae927e25e786e177 : SUCCESS in 4m 01s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a3274ed9f5514f31bd28e5804cc032d1 : SUCCESS in 25m 51s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2bfc82d0ef064da2b5532bf91c85ed87 : SUCCESS in 36m 52s\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":1},{"id":"1e42c98c645eaf8fec74541425481a90118e8f59","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-07 16:19:07.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/86b8f6e501934e2dae8f9311b23163f1\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/18cb2c6f59ef4a23a5f7a52aff9d3d1c : SUCCESS in 1h 27m 32s","accounts_in_message":[],"_revision_number":1},{"id":"f007f31d831c163156af75610ebf7d3141e89119","author":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"date":"2026-08-07 20:31:42.000000000","message":"Patch Set 1: Code-Review+1\n\n(3 comments)","accounts_in_message":[],"_revision_number":1},{"id":"b14c0c486d8336dc4039504df38f9e8779d5f218","tag":"autogenerated:gerrit:abandon","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-11 13:44:07.000000000","message":"Abandoned\n\nSquashed","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"fba6674075e09173d0de80ea2b12305473efe806","revisions":{"fba6674075e09173d0de80ea2b12305473efe806":{"kind":"REWORK","_number":1,"created":"2026-08-07 14:42:48.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/06/1000106/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/06/1000106/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1000106/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1000106/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/06/1000106/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/06/1000106/1"}}},"commit":{"parents":[{"commit":"78e9825ae7400c937f76e6ff903c68938fbd53ab","subject":"s3api: Add GetObjectAttributes request","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78e9825ae7400c937f76e6ff903c68938fbd53ab"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-08-07 14:41:04.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-08-07 14:42:16.000000000","tz":120},"subject":"sq? s3api: unquote GetObjectAttributes ETag, pass 304 through","message":"sq? s3api: unquote GetObjectAttributes ETag, pass 304 through\n\nTwo fixes for the new GetObjectAttributes controller.\n\nThe ETag was taken from the backend HEAD response header, which carries\nthe RFC 7232 double quotes. For this operation AWS returns the ETag in\nthe XML body, not as an HTTP header, and sends it bare -- unlike\nGetObject/HeadObject. Use resp.etag, which unquotes. Adjust the unit\ntests that asserted the quoted form.\n\nA conditional request also went wrong. HTTP_NOT_MODIFIED is an accepted\nsuccess code for the object HEAD, and swob zeroes Content-Length when it\ncollapses a response to 304. The controller read that header without\nchecking the status and returned an unconditional HTTPOk, so a 405-byte\nobject answered a client\u0027s If-None-Match with 200 and\n\u003cObjectSize\u003e0\u003c/ObjectSize\u003e. Return the 304 instead.\n\nAdds HTTPNotModified alongside the other status partials in\ns3response.py.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I023d382c18d3454470bd246b6843c0f645e07616\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fba6674075e09173d0de80ea2b12305473efe806"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fba6674075e09173d0de80ea2b12305473efe806"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
