)]}'
{"id":"openstack%2Fswift~900817","triplet_id":"openstack%2Fswift~master~I4cb4dc499661ea532bdab9f142ba377ed9d42ff6","project":"openstack/swift","branch":"master","topic":"expire-mpu","hashtags":[],"change_id":"I4cb4dc499661ea532bdab9f142ba377ed9d42ff6","subject":"s3api: Stop propagating storage policy to sub-requests","status":"ABANDONED","created":"2023-11-13 18:29:04.000000000","updated":"2023-11-13 18:29:29.000000000","total_comment_count":0,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":false,"meta_rev_id":"cf8ce7ac6cdb1107507f599364f89f403b3d69e8","_number":900817,"virtual_id_number":900817,"owner":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"actions":{},"labels":{"Verified":{"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":{"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":{"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{},"pending_reviewers":{},"reviewer_updates":[],"messages":[{"id":"dc76ab720254c760dadad3a596b4dcb34c3b24ef","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"date":"2023-11-13 18:29:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"cf8ce7ac6cdb1107507f599364f89f403b3d69e8","tag":"autogenerated:gerrit:abandon","author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"date":"2023-11-13 18:29:29.000000000","message":"Abandoned\n\nwe already have https://review.opendev.org/c/openstack/swift/+/897864","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"842e8ff62928d14b9093ea24132f7f06ec98823e","revisions":{"842e8ff62928d14b9093ea24132f7f06ec98823e":{"kind":"REWORK","_number":1,"created":"2023-11-13 18:29:04.000000000","uploader":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"ref":"refs/changes/17/900817/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/17/900817/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/17/900817/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/17/900817/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/17/900817/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/17/900817/1"}}},"commit":{"parents":[{"commit":"ff8f9510be2ef4b3530b43bb7c6dbc7c008cbd08","subject":"Merge \"docs: Document WSGI server process management\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ff8f9510be2ef4b3530b43bb7c6dbc7c008cbd08"}]}],"author":{"name":"indianwhocodes","email":"nairashwin952013@gmail.com","date":"2023-11-13 18:23:05.000000000","tz":-480},"committer":{"name":"indianwhocodes","email":"nairashwin952013@gmail.com","date":"2023-11-13 18:28:15.000000000","tz":-480},"subject":"s3api: Stop propagating storage policy to sub-requests","message":"s3api: Stop propagating storage policy to sub-requests\n\nThe proxy_logging middleware needs an X-Backend-Storage-Policy-Index\nheader to populate the storage policy field in logs. However,\nindiscriminately copying it from swift backend requests into the\nS3Request headers [1] causes it to leak between backend requests [2],\nand breaks mixed policy multipart uploads.\n\nThis patch sets the X-Backend-Storage-Policy-Index header on s3api\nresponses rather than requests.  Each pair of backend request/response\nheaders are searched for X-Backend-Storage-Policy-Index in the same\nway that proxy_logging would (i.e. preferring a response header over a\nrequest header). The s3api adds the value from the final backend\nrequest/response pair to its response headers.\n\nNote that returning the policy index from the last backend\nrequest/response is consistent with swift.backend_path being set to\nthat backend request\u0027s path i.e. proxy_logging will log the correct\npolicy index for the logged path.\n\nThe FakeSwift helper no longer looks in registered object responses\nfor an X-Backend-Storage-Policy-Index header to update an object\nrequest. Real Swift object responses do not have an\nX-Backend-Storage-Policy-Index header. By default, FakeSwift will now\nupdate *all* object requests with an X-Backend-Storage-Policy-Index as\nfollows:\n\n  - If a matching container HEAD response has been registered then\n    any X-Backend-Storage-Policy-Index found with that is used.\n  - Otherwise the default policy index is used.\n\nFurthermore, FakeSwift now adds the X-Backend-Storage-Policy-Index\nheader to the request *after* the request has been captured. Tests\nusing FakeSwift.calls_wth_headers() to make assertions about captured\nheaders no longer need to make allowance for the header that FakeSwift\nadded.\n\nCo-Authored-By: Clay Gerrard \u003cclay.gerrard@gmail.com\u003e\nCloses-Bug: #2038459\n[1] Related-Change: I5fe5ab31d6b2d9f7b6ecb3bfa246433a78e54808\n[2] Related-Change: I40b252446b3a1294a5ca8b531f224ce9c16f9aba\nChange-Id: I2793e335a08ad373c49cbbe6759d4e97cc420867\n\nChange-Id: I4cb4dc499661ea532bdab9f142ba377ed9d42ff6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/842e8ff62928d14b9093ea24132f7f06ec98823e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/842e8ff62928d14b9093ea24132f7f06ec98823e"}]},"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":{}}},{"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":{}}},{"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":{}}}]}
