)]}'
{"id":"openstack%2Fswift~989597","triplet_id":"openstack%2Fswift~master~I56dac0a91c65cfae3f6a763043686251a292d341","project":"openstack/swift","branch":"master","attention_set":{},"removed_from_attention_set":{"330":{"account":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"last_update":"2026-06-01 19:16:04.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I56dac0a91c65cfae3f6a763043686251a292d341","subject":"Handle empty S3 multi-delete Quiet elements","status":"MERGED","created":"2026-05-21 18:02:37.000000000","updated":"2026-06-01 19:17:10.000000000","submitted":"2026-06-01 19:16:04.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"989597","meta_rev_id":"7562e845161c268477e136a7a39c9314f2761940","_number":989597,"virtual_id_number":989597,"owner":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-06-01 19:16:04.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-06-01 17:58:02.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-06-01 17:58:02.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-21 19:19:40.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-06-01 17:58:02.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"}],"messages":[{"id":"44b012b80683242e693598bb55711e0aaabb1cd3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2026-05-21 18:02:37.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c70efd8934c30f51568c7a5a99b754a005622cb5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 19:19:40.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5e2cf20a7ba749489c93ed8d71df473a\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c2af2dda9ce74dd787c70a97e94cf905 : SUCCESS in 7m 31s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/49815d8aafeb4986b975f2e291e5fc87 : SUCCESS in 4m 59s\n- grenade https://zuul.opendev.org/t/openstack/build/c4e3c62ab6314200ad992109a0644775 : SUCCESS in 1h 07m 29s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4f74d2bda64148e5b60f6420f42f00c5 : SUCCESS in 1h 03m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d191bba89a8d449dad14db7c34a83b24 : SUCCESS in 51m 59s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/131aeb65d1db40699d9652521649d5a9 : SUCCESS in 1h 09m 06s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5c98757c331242498ea3ea9dfc720409 : SUCCESS in 21m 31s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/edf5660518be4e72a15be1fcfd33ea13 : SUCCESS in 20m 14s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/44862c00b5434ec6bf0c6587d70e14c6 : SUCCESS in 19m 43s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/459bade7efa14be6b3a4ee5b6f4285c9 : SUCCESS in 4m 38s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/125767b6f71c4ce198279a2ec4fff90f : SUCCESS in 24m 57s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/a2d93c1ababd44b0b61a06b564dc486a : SUCCESS in 21m 37s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2bb72388a01540e8b7d2f8f7a76e35f8 : SUCCESS in 13m 26s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/db07d0021012482284227c320a6d06a3 : SUCCESS in 22m 50s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/364521299b544b41888ac26151ef9447 : SUCCESS in 10m 13s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/449edca87a174d2dab2b3820f78189ac : SUCCESS in 15m 34s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/8739cb1e20fe405588367642ce78c5ed : SUCCESS in 15m 15s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/80b16591c7c0497cb9dc5d119bd0039a : SUCCESS in 7m 33s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/456923674fc64bf9a8707b90f579001e : SUCCESS in 19m 18s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/8c9df3857d6947559c66454c33e37052 : SUCCESS in 10m 04s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/47255648ad0e438b85dd9080f481b920 : SUCCESS in 52m 11s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/12f2ade9ab9f4e73be1e42a29a70d9f8 : SUCCESS in 22m 39s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/94dc7c99204448539b60fa344e3ca2f1 : SUCCESS in 23m 14s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/61054d5377634e95b032d2322ce8705e : SUCCESS in 23m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e5bd2937a725474f817db2d11504bba6 : SUCCESS in 3m 52s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d6c1a662f03d4b668fdd55446527620b : SUCCESS in 20m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5d25456fbcd741bdb38cbdd445df810e : SUCCESS in 57m 14s","accounts_in_message":[],"_revision_number":1},{"id":"f9543d8c18be00a869e87af938d1e13b26c6c4be","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 22:10:27.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/572b0e94ebdb4534bd5a759432f6390c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/95d7bcd0509f44a7924026a7be694322 : SUCCESS in 1h 03m 35s","accounts_in_message":[],"_revision_number":1},{"id":"290d314326c99e4c0f85ab34be0cada6aa4d4758","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-06-01 17:58:02.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"e691b6454639267fb4005fa74dce8427ad59ba5b","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 17:58:56.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"b9f13c6e5a2af07edb9a3d8e68cbdfa9463c389b","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 19:16:04.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9501ce79751641239dad458f77301a1c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3df20d3e033644ca805db125594b5d38 : SUCCESS in 10m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8b9b2c161dbe45578343b0b58b554a27 : SUCCESS in 9m 03s\n- grenade https://zuul.opendev.org/t/openstack/build/40249061c5df4945bf5d49aae7415b40 : SUCCESS in 31m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c4aa880ffd2a4d22a2601592a0b268a0 : SUCCESS in 40m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6ba2ac0260794f4ab208cd763c0518c5 : SUCCESS in 40m 16s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c488c6edc81140619e280b96f16e1797 : SUCCESS in 1h 10m 58s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/e4ff65ec5cd24ce8a35640f06def6f56 : SUCCESS in 5m 54s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/494f20781a1e44b9936aeb4a940a9b84 : SUCCESS in 27m 36s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/2f26f85bc13d41c09b10e15a64b067c8 : SUCCESS in 23m 22s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/1ac06ce2178f4ebeab305392d85141e8 : SUCCESS in 22m 22s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/d5ddcf6f121d4e4a9b21ecf454707e23 : SUCCESS in 22m 38s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/2f76ca22eef9481b9efdeab3fda63012 : SUCCESS in 15m 35s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/2c1dc605c5094328b18673483e6e34dc : SUCCESS in 10m 38s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/8cae37784df54194be6bfdf67f5f5cd3 : SUCCESS in 16m 00s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/8fd75aa5a4e54378b053e19a0d0dfbd4 : SUCCESS in 4m 01s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/5b350d22b58a45dcb8e27e71fe57a6db : SUCCESS in 7m 26s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e91170c9bcb440fb9e4920c3c3693e61 : SUCCESS in 1h 01m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9283361938d7413fb320d5f2e815bfa6 : SUCCESS in 59m 04s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/66cef384aa0649fc96e5048ec8d6073b : SUCCESS in 57m 44s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4790c226605a4a90886a742a88f278b7 : SUCCESS in 32m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ec35bc46a15a473aa80c9e89015c806d : SUCCESS in 5m 46s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/53f4cae2f2a9424b8281c22792e66cb7 : SUCCESS in 19m 51s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f203cb6ece42462b92cd75d98b73b1b6 : SUCCESS in 57m 49s","accounts_in_message":[],"_revision_number":1},{"id":"e63d3f989b02f2253192ce1b22d2fddc6e9870e9","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 19:16:04.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"7562e845161c268477e136a7a39c9314f2761940","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 19:17:10.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b354e0c172d24e9389e33cd38a0daafb\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7b226de874764840ae9bf9d015763ce8 : SUCCESS in 49s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/2774a13b53c34afa90cf421a87b643fb : SUCCESS in 53s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"a51443b2b54d8b4b0192d761a1e32a33e150fa80","revisions":{"a51443b2b54d8b4b0192d761a1e32a33e150fa80":{"kind":"REWORK","_number":1,"created":"2026-05-21 18:02:37.000000000","uploader":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"ref":"refs/changes/97/989597/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/97/989597/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/97/989597/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/97/989597/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/97/989597/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/97/989597/1"}}},"commit":{"parents":[{"commit":"ca8749f344168ad1c4e07fdfd24e68ca04c57eae","subject":"test_sharder.py: pass timestamp strings to put_object","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ca8749f344168ad1c4e07fdfd24e68ca04c57eae"}]}],"author":{"name":"John Dickinson","email":"me@not.mn","date":"2026-05-21 17:49:15.000000000","tz":-420},"committer":{"name":"John Dickinson","email":"me@not.mn","date":"2026-05-21 18:02:35.000000000","tz":-420},"subject":"Handle empty S3 multi-delete Quiet elements","message":"Handle empty S3 multi-delete Quiet elements\n\nS3 multi-delete accepts a Quiet XML element and then calls lower() on its\ntext. For an empty \u003cQuiet/\u003e element, ElementTree reports None for the\ntext, so the request raises AttributeError and returns an internal error.\n\nTreat missing Quiet text as an empty string before comparing it with\ntrue. Empty Quiet elements no longer raise, and only an explicit true value\nenables quiet multi-delete responses.\n\nCloses-Bug: #2153519\nAssisted-By: Codex (GPT 5.5)\nChange-Id: I56dac0a91c65cfae3f6a763043686251a292d341\nSigned-off-by: John Dickinson \u003cme@not.mn\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a51443b2b54d8b4b0192d761a1e32a33e150fa80"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a51443b2b54d8b4b0192d761a1e32a33e150fa80"}]},"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}]}],"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":""}}}]}
