)]}'
{"id":"openstack%2Fglance_store~984013","triplet_id":"openstack%2Fglance_store~stable%2F2025.1~Id87c3aa0d0d44a731cc5e2439e0b464bb92460a2","project":"openstack/glance_store","branch":"stable/2025.1","topic":"bug/2121144-stable/2025.1","attention_set":{},"removed_from_attention_set":{"37432":{"account":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"last_update":"2026-10-01 15:18:33.000000000","reason":"Change was submitted"},"8122":{"account":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"last_update":"2026-10-01 14:22:13.000000000","reason":"\u003cGERRIT_ACCOUNT_8122\u003e replied on the change","reason_account":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"}}},"hashtags":[],"change_id":"Id87c3aa0d0d44a731cc5e2439e0b464bb92460a2","subject":"s3: add options to control checksum calculation/validation","status":"MERGED","created":"2026-04-10 12:09:35.000000000","updated":"2026-10-01 15:19:30.000000000","submitted":"2026-10-01 15:18:33.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":"984013-bug/2121144-stable/2025.1","cherry_pick_of_change":959201,"cherry_pick_of_patch_set":5,"meta_rev_id":"6ee23df6c3a1214f223a7722c85cd1d8a7513981","_number":984013,"virtual_id_number":984013,"owner":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},{"value":0,"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},{"value":0,"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-10-01 15:18:33.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":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"recommended":{"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},"all":[{"value":1,"date":"2026-05-27 10:50:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},{"value":1,"date":"2026-05-29 11:21:40.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},{"value":2,"date":"2026-10-01 14:22:13.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},{"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"all":[{"value":0,"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},{"value":0,"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},{"value":1,"date":"2026-10-01 14:22:13.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},{"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},"Review-Priority":{"all":[{"value":0,"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},{"value":0,"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},{"value":0,"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Top Priority / Holds Gate"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},{"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-10 12:09:35.000000000","updated_by":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"reviewer":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"state":"CC"},{"updated":"2026-04-10 15:20:48.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-04-13 07:01:29.000000000","updated_by":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"reviewer":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"state":"REVIEWER"},{"updated":"2026-05-27 10:50:18.000000000","updated_by":{"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},"reviewer":{"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},"state":"REVIEWER"},{"updated":"2026-05-29 11:21:40.000000000","updated_by":{"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},"reviewer":{"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},"state":"REVIEWER"}],"messages":[{"id":"4a45afaa5ac08a0b61d111f0fae74f46bfdfa345","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"date":"2026-04-10 12:09:35.000000000","message":"Patch Set 1: Cherry Picked from branch master.\n\nThe following files contain Git conflicts:\n* glance_store/tests/unit/test_multistore_s3.py\n* glance_store/tests/unit/test_s3_store.py\n* glance_store/tests/unit/test_s3_store_base.py","accounts_in_message":[],"_revision_number":1},{"id":"761acc66acae680c86e894cea32fa80b445c2c55","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 15:20:48.000000000","message":"Patch Set 1: Verified-1\n\n(3 comments)\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/6f0105a6ba134e9d98df61dd1d20467c\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/0cd85ad118244203952b1a720a46c91a : SUCCESS in 1h 23m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/99224370757e431fbea07172ea1e0fb7 : FAILURE in 3m 27s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/5b6fbab3fc2747b88d1c0ae86fe202b0 : FAILURE in 3m 34s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/8b04611cde8b4a0db3c8641e4ddea095 : FAILURE in 3m 02s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a91f9eb5941c4da990862e3de4d1d1b6 : SUCCESS in 4m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/41cafd2ad3fe4dedb9d1c005bfb12eef : SUCCESS in 3m 43s\n- cross-glance-tox-functional https://zuul.opendev.org/t/openstack/build/99379bc122324584988c5af9fc98159f : SUCCESS in 10m 50s\n- glance_store-src-ceph-tempest https://zuul.opendev.org/t/openstack/build/d18af4db0abe4c61a72250004c1febca : TIMED_OUT in 3h 06m 00s","accounts_in_message":[],"_revision_number":1},{"id":"7026c8b3b10f6e5d6364f4cd5aa4e0ee62d1ea59","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"date":"2026-04-13 07:01:29.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"044ba0155a0fb46bbfdcadd4a0e0d4c9709b6816","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 10:10:22.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1799ebe5c34b4f3d9fccfb3a54c90e9d\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/878ab61fbb17433dad35afbce559299a : SUCCESS in 1h 39m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b018deb838114b6da733e725f409442c : SUCCESS in 1m 52s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/8e2af2dc9dd3487aa82e042278dd4c06 : SUCCESS in 3m 38s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/9a2d2238e11d4aadbd07f6f07eefb739 : SUCCESS in 3m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7f5b84da34b04e4bbf78aea81480e1bc : SUCCESS in 3m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/14376e80eeea4e71938185389c741033 : SUCCESS in 2m 05s\n- cross-glance-tox-functional https://zuul.opendev.org/t/openstack/build/0785be98dc1746e6b3052db974390b38 : SUCCESS in 6m 05s\n- glance_store-src-ceph-tempest https://zuul.opendev.org/t/openstack/build/f38d9c9dd4dc48bcb7858abc5ccd9b2f : SUCCESS in 3h 01m 40s","accounts_in_message":[],"_revision_number":2},{"id":"cf20f6de1b5e15c2e0174000bb8a9c794852f26b","tag":"autogenerated:gerrit:setReadyForReview","author":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"date":"2026-04-14 10:57:20.000000000","message":"Set Ready For Review","accounts_in_message":[],"_revision_number":2},{"id":"d126e1f2a329fe401fcd40a5470ca401caf149e9","author":{"_account_id":30568,"name":"Sergei Raiskii","email":"connoreika@gmail.com","username":"connoreika"},"date":"2026-05-27 10:50:18.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"a8444b2cbaddecfea4215b7cfd64c6036b33a074","author":{"_account_id":38329,"name":"Ilia Petrov","display_name":"Ilia Petrov","email":"il.petrov@maxima-int.com","username":"ilpetrov"},"date":"2026-05-29 11:21:40.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"12bafad3edd58eb7c62641b41d4bfee2dd9b3936","author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"date":"2026-10-01 14:22:13.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"e867239edaf8ceef598b549dd2418a3269420ca1","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-01 14:22:33.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"2e1a208553ed36e75d628dea167d7f4b378aa970","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-01 15:18:33.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1fda2a40088b45039bdb1034349fb54e\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/f908dfa0cd664e5b9d4d3dfeee3fe267 : SUCCESS in 55m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/43d1777db696479abb7d7aa1bc0a8277 : SUCCESS in 3m 24s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/76f4f20c93b749928a447fa077212b47 : SUCCESS in 3m 28s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/ad870d43beb14aeb90f68a7e1fe16319 : SUCCESS in 2m 31s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/10263111a9ba4cf58cb57e7c2af63bd7 : SUCCESS in 2m 26s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c9a6e255cd2c40659fcb69de2e884935 : SUCCESS in 4m 03s","accounts_in_message":[],"_revision_number":2},{"id":"d8cb44150ad9afedf6091cbf4ab02f5e5c2f8e36","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-01 15:18:33.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"6ee23df6c3a1214f223a7722c85cd1d8a7513981","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-01 15:19:30.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bf070364a9f0428ca8cad63c645d4f28\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5dd9b3478be04211bb578a14a2e64fd0 : SUCCESS in 42s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8e68670eef6f45fda4fd8bbedc10f1be : SUCCESS in 47s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"b88afbc203380b08e051dcdb5f58b92b5660b2cb","revisions":{"057f083d8bef609d76fe12e36a2ae0ac2da01749":{"kind":"REWORK","_number":1,"created":"2026-04-10 12:09:35.000000000","uploader":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"ref":"refs/changes/13/984013/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance_store","ref":"refs/changes/13/984013/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance_store refs/changes/13/984013/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance_store refs/changes/13/984013/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance_store refs/changes/13/984013/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance_store refs/changes/13/984013/1"}}},"commit":{"parents":[{"commit":"5db60a4a979662d2a09d937cf460f8d72f8403dd","subject":"Support multipart upload when image_size \u003d\u003d 0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance_store/commit/5db60a4a979662d2a09d937cf460f8d72f8403dd"}]}],"author":{"name":"Cyril Roelandt","email":"cyril@redhat.com","date":"2025-09-02 14:24:44.000000000","tz":120},"committer":{"name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","date":"2026-04-10 12:09:35.000000000","tz":0},"subject":"s3: add options to control checksum calculation/validation","message":"s3: add options to control checksum calculation/validation\n\nStarting with boto3 1.36.x, the S3 checksum default behaviour defaults\nto requesting checksum calculation/validation. This causes failures when\nusing S3-compatible storage backends that do not implement this feature.\n\nThis commit adds three new configuration options:\n- s3_store_enable_data_integrity_protection (boolean, default: False)\n- s3_store_request_checksum_calculation (default: \u0027when_required\u0027)\n- s3_store_response_checksum_validation (default: \u0027when_required\u0027)\n\nThe boolean option provides convenient control: when False, both checksum\nsettings use \u0027when_required\u0027 (disabling data integrity protection). When\nTrue, the fine-grained options allow setting \u0027when_required\u0027 or\n\u0027when_supported\u0027 independently for request calculation and response\nvalidation. This provides flexibility for users who need different\nbehavior for uploads vs downloads.\n\nThe implementation includes version compatibility for boto3 \u003c 1.36.0.\n\nChange-Id: Id87c3aa0d0d44a731cc5e2439e0b464bb92460a2\nCloses-Bug: #2121144\nSigned-off-by: Cyril Roelandt \u003ccyril@redhat.com\u003e\nAssisted-By: Claude\n(cherry picked from commit f217be1c8bbf2faf5d5ee49a2f3c6b2ce9c55001)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance_store/commit/057f083d8bef609d76fe12e36a2ae0ac2da01749"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance_store/commit/057f083d8bef609d76fe12e36a2ae0ac2da01749"}]},"branch":"refs/heads/stable/2025.1"},"b88afbc203380b08e051dcdb5f58b92b5660b2cb":{"kind":"REWORK","_number":2,"created":"2026-04-13 07:01:29.000000000","uploader":{"_account_id":37432,"name":"Koya Watanabe","display_name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","username":"koya-watanabe"},"ref":"refs/changes/13/984013/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance_store","ref":"refs/changes/13/984013/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance_store refs/changes/13/984013/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance_store refs/changes/13/984013/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance_store refs/changes/13/984013/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance_store refs/changes/13/984013/2"}}},"commit":{"parents":[{"commit":"5db60a4a979662d2a09d937cf460f8d72f8403dd","subject":"Support multipart upload when image_size \u003d\u003d 0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance_store/commit/5db60a4a979662d2a09d937cf460f8d72f8403dd"}]}],"author":{"name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","date":"2026-04-13 06:56:56.000000000","tz":540},"committer":{"name":"Koya Watanabe","email":"koywatan@lycorp.co.jp","date":"2026-04-13 07:00:51.000000000","tz":540},"subject":"s3: add options to control checksum calculation/validation","message":"s3: add options to control checksum calculation/validation\n\nStarting with boto3 1.36.x, the S3 checksum default behaviour defaults\nto requesting checksum calculation/validation. This causes failures when\nusing S3-compatible storage backends that do not implement this feature.\n\nThis commit adds three new configuration options:\n- s3_store_enable_data_integrity_protection (boolean, default: False)\n- s3_store_request_checksum_calculation (default: \u0027when_required\u0027)\n- s3_store_response_checksum_validation (default: \u0027when_required\u0027)\n\nThe boolean option provides convenient control: when False, both checksum\nsettings use \u0027when_required\u0027 (disabling data integrity protection). When\nTrue, the fine-grained options allow setting \u0027when_required\u0027 or\n\u0027when_supported\u0027 independently for request calculation and response\nvalidation. This provides flexibility for users who need different\nbehavior for uploads vs downloads.\n\nThe implementation includes version compatibility for boto3 \u003c 1.36.0.\n\nChange-Id: Id87c3aa0d0d44a731cc5e2439e0b464bb92460a2\nCloses-Bug: #2121144\nSigned-off-by: Cyril Roelandt \u003ccyril@redhat.com\u003e\nAssisted-By: Claude\n(cherry picked from commit f217be1c8bbf2faf5d5ee49a2f3c6b2ce9c55001)\nSigned-off-by: Koya Watanabe \u003ckoywatan@lycorp.co.jp\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance_store/commit/b88afbc203380b08e051dcdb5f58b92b5660b2cb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance_store/commit/b88afbc203380b08e051dcdb5f58b92b5660b2cb"}]},"branch":"refs/heads/stable/2025.1"}},"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":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"}},{"label":"Review-Priority","status":"MAY"}]}],"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":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\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":""}}}]}
