)]}'
{"swift/common/middleware/s3api/s3api.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bf80193d75809b9007dd1a8023c0557699d15e6c","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            resp.headers[\u0027x-amz-request-id\u0027] \u003d env[\u0027swift.trans_id\u0027]"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        if \u0027s3api.backend_path\u0027 in env and \u0027swift.backend_path\u0027 not in env:"},{"line_number":310,"context_line":"            env[\u0027swift.backend_path\u0027] \u003d env[\u0027s3api.backend_path\u0027]"},{"line_number":311,"context_line":"        return resp(env, start_response)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def handle_request(self, req):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_edac2337","line":310,"updated":"2020-06-30 21:34:32.000000000","message":"can you point me at where we set swift.backend_path then?","commit_id":"16e85f6d7d11252fc2f3af97ef7c65bdeecb0656"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"27077c56a8e6609473444b39e3aa85efc3d6f6b7","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            resp.headers[\u0027x-amz-request-id\u0027] \u003d env[\u0027swift.trans_id\u0027]"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        if \u0027s3api.backend_path\u0027 in env and \u0027swift.backend_path\u0027 not in env:"},{"line_number":310,"context_line":"            env[\u0027swift.backend_path\u0027] \u003d env[\u0027s3api.backend_path\u0027]"},{"line_number":311,"context_line":"        return resp(env, start_response)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def handle_request(self, req):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_65abff74","line":310,"in_reply_to":"bf51134e_edac2337","updated":"2020-07-01 14:40:46.000000000","message":"I don\u0027t think the existing tests ever hit the condition where \u0027swift.backend_path\u0027 is already set - please elaborate on the thinking here.","commit_id":"16e85f6d7d11252fc2f3af97ef7c65bdeecb0656"}],"swift/common/middleware/s3api/s3request.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bf80193d75809b9007dd1a8023c0557699d15e6c","unresolved":false,"context_lines":[{"line_number":1334,"context_line":"                                            2, 3, True)"},{"line_number":1335,"context_line":"            # Propagate swift.backend_path in environ for middleware"},{"line_number":1336,"context_line":"            # in pipeline that need Swift PATH_INFO like ceilometermiddleware."},{"line_number":1337,"context_line":"            # Store PATH_INFO only the first time to ignore multipart requests."},{"line_number":1338,"context_line":"            if \u0027swift.backend_path\u0027 not in self.environ:"},{"line_number":1339,"context_line":"                self.environ[\u0027swift.backend_path\u0027] \u003d \\"},{"line_number":1340,"context_line":"                    sw_resp.environ[\u0027PATH_INFO\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_2df9fb4c","side":"PARENT","line":1337,"updated":"2020-06-30 21:34:32.000000000","message":"yeah... so the last thing a complete multipart upload request does is like delete the upload id marker or whatever right?\n\nJun 30 21:29:49 saio proxy-server: 127.0.0.1 127.0.0.1 30/Jun/2020/21/29/49 POST /s3test/foo%3FuploadId%3DMTY3MGFmMDUtMTQ4Mi00OTcwLTkyMWUtZGI2ZTk2Y2IwNGJk HTTP/1.0 200 - Boto3/1.13.20%20Python/2.7.17%20Linux/4.15.0-108-generic%20Botocore/1.16.20 - 271 284 - tx5ae17a845345435189aeb-005efbaecc - 0.1786 - - 1593552588.831890106 1593552589.010468960 - AUTH_test s3test%2Bsegments foo/MTY3MGFmMDUtMTQ4Mi00OTcwLTkyMWUtZGI2ZTk2Y2IwNGJk\n\n^ that\u0027s gunna show up as a POST to an object","commit_id":"3c0a448f06fc4469a50cdc64f8b9a5d8f0d5ac5d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b3b0c0f161ac762200aebe859685717c2c517ec5","unresolved":false,"context_lines":[{"line_number":1334,"context_line":"                                            2, 3, True)"},{"line_number":1335,"context_line":"            # Propagate swift.backend_path in environ for middleware"},{"line_number":1336,"context_line":"            # in pipeline that need Swift PATH_INFO like ceilometermiddleware."},{"line_number":1337,"context_line":"            # Store PATH_INFO only the first time to ignore multipart requests."},{"line_number":1338,"context_line":"            if \u0027swift.backend_path\u0027 not in self.environ:"},{"line_number":1339,"context_line":"                self.environ[\u0027swift.backend_path\u0027] \u003d \\"},{"line_number":1340,"context_line":"                    sw_resp.environ[\u0027PATH_INFO\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_de3bc3c5","side":"PARENT","line":1337,"in_reply_to":"bf51134e_2df9fb4c","updated":"2020-08-07 15:57:28.000000000","message":"Seems... not entirely crazy? Might be better to point to\n\n AUTH_test/s3test/foo\n\ninstead of\n\n AUTH_test/s3test+segments/foo/MTY3MGFmMDUtMTQ4Mi00OTcwLTkyMWUtZGI2ZTk2Y2IwNGJk\n\nbut either seems preferable to pointing to\n\n AUTH_test/s3test+segments\n\n(which I *think* is what happens now?)","commit_id":"3c0a448f06fc4469a50cdc64f8b9a5d8f0d5ac5d"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"27077c56a8e6609473444b39e3aa85efc3d6f6b7","unresolved":false,"context_lines":[{"line_number":1332,"context_line":"            # reuse account"},{"line_number":1333,"context_line":"            _, self.account, _ \u003d split_path(sw_resp.environ[\u0027PATH_INFO\u0027],"},{"line_number":1334,"context_line":"                                            2, 3, True)"},{"line_number":1335,"context_line":"            # Propagate swift.backend_path in environ for middleware"},{"line_number":1336,"context_line":"            # in pipeline that need Swift PATH_INFO like ceilometermiddleware."},{"line_number":1337,"context_line":"            self.environ[\u0027s3api.backend_path\u0027] \u003d \\"},{"line_number":1338,"context_line":"                sw_resp.environ[\u0027PATH_INFO\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_a5b6b7db","line":1335,"updated":"2020-07-01 14:40:46.000000000","message":"maybe move this comment to __call__ ?","commit_id":"16e85f6d7d11252fc2f3af97ef7c65bdeecb0656"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"27077c56a8e6609473444b39e3aa85efc3d6f6b7","unresolved":false,"context_lines":[{"line_number":1335,"context_line":"            # Propagate swift.backend_path in environ for middleware"},{"line_number":1336,"context_line":"            # in pipeline that need Swift PATH_INFO like ceilometermiddleware."},{"line_number":1337,"context_line":"            self.environ[\u0027s3api.backend_path\u0027] \u003d \\"},{"line_number":1338,"context_line":"                sw_resp.environ[\u0027PATH_INFO\u0027]"},{"line_number":1339,"context_line":""},{"line_number":1340,"context_line":"        resp \u003d S3Response.from_swift_resp(sw_resp)"},{"line_number":1341,"context_line":"        status \u003d resp.status_int  # pylint: disable-msg\u003dE1101"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_2068d5b8","line":1338,"updated":"2020-07-01 14:40:46.000000000","message":"maybe staying out of the swift.backend_path namespace prevents us from accidently leaking that env var forward on additional swift subrequests","commit_id":"16e85f6d7d11252fc2f3af97ef7c65bdeecb0656"}],"test/unit/common/middleware/s3api/test_s3api.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"27077c56a8e6609473444b39e3aa85efc3d6f6b7","unresolved":false,"context_lines":[{"line_number":533,"context_line":"            self.assertIn(\u0027swift.backend_path\u0027, req.environ)"},{"line_number":534,"context_line":"            self.assertEqual("},{"line_number":535,"context_line":"                \u0027/v1/AUTH_test/bucket+segments/object/123456789abcdef/1\u0027,"},{"line_number":536,"context_line":"                req.environ[\u0027swift.backend_path\u0027])"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        _, _, headers \u003d self.swift.calls_with_headers[-1]"},{"line_number":539,"context_line":"        self.assertEqual(req.environ[\u0027s3api.auth_details\u0027], {"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_85e0d3ce","line":536,"updated":"2020-07-01 14:40:46.000000000","message":"should there be some assertions about s3api.backend_path?","commit_id":"16e85f6d7d11252fc2f3af97ef7c65bdeecb0656"}]}
