)]}'
{"swift/common/middleware/slo.py":[{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"f693453d036d98a0188a420ffaf9d9ce904640dd","unresolved":false,"context_lines":[{"line_number":833,"context_line":"            })"},{"line_number":834,"context_line":"            return resp(req.environ, start_response)"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        if self._need_to_refetch_manifest(req):"},{"line_number":837,"context_line":"            req.environ[\u0027swift.non_client_disconnect\u0027] \u003d True"},{"line_number":838,"context_line":"            close_if_possible(resp_iter)"},{"line_number":839,"context_line":"            del req.environ[\u0027swift.non_client_disconnect\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_126bc61e","line":836,"range":{"start_line":836,"start_character":8,"end_line":836,"end_character":47},"updated":"2019-12-13 00:15:05.000000000","message":"can we remove this check now?\non my saio, func tests pass, but a bunch of unit tests fail, but that seems mostly to the fact that the FakeSwift app is not removing the Range header from the request. Does that seem correct?","commit_id":"6c13664f6ebc6b8c60cba1448d2cae3568e90c27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c86188562b07fdb8b51f167a7b67ccfebbe05b4b","unresolved":false,"context_lines":[{"line_number":833,"context_line":"            })"},{"line_number":834,"context_line":"            return resp(req.environ, start_response)"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        if self._need_to_refetch_manifest(req):"},{"line_number":837,"context_line":"            req.environ[\u0027swift.non_client_disconnect\u0027] \u003d True"},{"line_number":838,"context_line":"            close_if_possible(resp_iter)"},{"line_number":839,"context_line":"            del req.environ[\u0027swift.non_client_disconnect\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_4d70b1a8","line":836,"range":{"start_line":836,"start_character":8,"end_line":836,"end_character":47},"in_reply_to":"3fa7e38b_126bc61e","updated":"2019-12-13 23:25:51.000000000","message":"Still want it for smooth upgrades. Sure, we recommend upgrading all object servers before any proxy servers, but that doesn\u0027t mean we *have* to ignore people running PACO nodes...\n\nPlus, even with new code all around, we still have to worry about responding to HEADs to SLOs written down before https://github.com/openstack/swift/commit/2d25fe6 and whatever other weird edge-cases... seems safer to keep this -- belt \u0026 bracers.","commit_id":"6c13664f6ebc6b8c60cba1448d2cae3568e90c27"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"6dbb1e343dec263393b0f636ae126bd63db9e21c","unresolved":false,"context_lines":[{"line_number":833,"context_line":"            })"},{"line_number":834,"context_line":"            return resp(req.environ, start_response)"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        if self._need_to_refetch_manifest(req):"},{"line_number":837,"context_line":"            req.environ[\u0027swift.non_client_disconnect\u0027] \u003d True"},{"line_number":838,"context_line":"            close_if_possible(resp_iter)"},{"line_number":839,"context_line":"            del req.environ[\u0027swift.non_client_disconnect\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_bf286098","line":836,"range":{"start_line":836,"start_character":8,"end_line":836,"end_character":47},"in_reply_to":"3fa7e38b_4d70b1a8","updated":"2019-12-16 07:42:33.000000000","message":"makes sense, thanks for the reply","commit_id":"6c13664f6ebc6b8c60cba1448d2cae3568e90c27"}],"swift/common/request_helpers.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"6a02bca0491689ddda381776b5649d832b1cafc9","unresolved":false,"context_lines":[{"line_number":818,"context_line":"    of a 206 or 416."},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"    :param req: a swob Request"},{"line_number":821,"context_line":"    :param name: name of a sysmeta where alternative etag may be found"},{"line_number":822,"context_line":"    \"\"\""},{"line_number":823,"context_line":"    if \u0027,\u0027 in name:"},{"line_number":824,"context_line":"        # HTTP header names should not have commas but we\u0027ll check anyway"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_beb3344e","line":821,"updated":"2019-12-20 06:18:48.000000000","message":"I don\u0027t think that\u0027s what name really is :P","commit_id":"372407af33628ba8bf614901ec88dd5229dde215"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2febad9ba23b0436eb2171044167f5167745d4cf","unresolved":false,"context_lines":[{"line_number":818,"context_line":"    of a 206 or 416."},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"    :param req: a swob Request"},{"line_number":821,"context_line":"    :param name: name of a sysmeta where alternative etag may be found"},{"line_number":822,"context_line":"    \"\"\""},{"line_number":823,"context_line":"    if \u0027,\u0027 in name:"},{"line_number":824,"context_line":"        # HTTP header names should not have commas but we\u0027ll check anyway"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_3ed8a450","line":821,"in_reply_to":"3fa7e38b_beb3344e","updated":"2019-12-20 06:33:13.000000000","message":"Did I say \"inspired by\"? I meant \"copy/pasted from\" :P","commit_id":"372407af33628ba8bf614901ec88dd5229dde215"}],"test/unit/obj/test_server.py":[{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"f693453d036d98a0188a420ffaf9d9ce904640dd","unresolved":false,"context_lines":[{"line_number":3013,"context_line":"        self.assertEqual(resp.body, b\u0027ERI\u0027)"},{"line_number":3014,"context_line":"        self.assertEqual(resp.headers[\u0027content-length\u0027], \u00273\u0027)"},{"line_number":3015,"context_line":""},{"line_number":3016,"context_line":"        # Works like \"any\", not \"all\"; also works where we would\u0027ve 416ed"},{"line_number":3017,"context_line":"        req \u003d Request.blank(\u0027/sda1/p/a/c/o\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027})"},{"line_number":3018,"context_line":"        req.range \u003d \u0027bytes\u003d100-\u0027"},{"line_number":3019,"context_line":"        req.headers[\u0027X-Backend-Ignore-Range-If-Metadata-Present\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_7259da8a","line":3016,"range":{"start_line":3016,"start_character":10,"end_line":3016,"end_character":37},"updated":"2019-12-13 00:15:05.000000000","message":"nice, makes sense","commit_id":"6c13664f6ebc6b8c60cba1448d2cae3568e90c27"}]}
