)]}'
{"swift/common/middleware/slo.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"a6d62e8939363287a5bcfff9d99519429aabc762","unresolved":false,"context_lines":[{"line_number":863,"context_line":"            new_env[\u0027swift.source\u0027] \u003d \u0027SLO\u0027"},{"line_number":864,"context_line":"            del(new_env[\u0027wsgi.input\u0027])"},{"line_number":865,"context_line":"            del(new_env[\u0027QUERY_STRING\u0027])"},{"line_number":866,"context_line":"            new_env.pop(\u0027HTTP_IF_MATCH\u0027, None)"},{"line_number":867,"context_line":"            new_env.pop(\u0027HTTP_IF_NONE_MATCH\u0027, None)"},{"line_number":868,"context_line":"            new_env.pop(\u0027HTTP_IF_MODIFIED_SINCE\u0027, None)"},{"line_number":869,"context_line":"            new_env.pop(\u0027HTTP_IF_UNMODIFIED_SINCE\u0027, None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_5d24f4ad","line":866,"updated":"2016-04-14 00:00:42.000000000","message":"Why pop instead of the del like before? This lack of consistency prompts questions like I\u0027m asking now. But when this is a part of the code, there will be no place to ask.","commit_id":"80d75c8586722508553f85d4460cacabfefd82c2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"40a2eb6fcbe9ae73a57717362cc7fe9da87fc8c3","unresolved":false,"context_lines":[{"line_number":863,"context_line":"            new_env[\u0027swift.source\u0027] \u003d \u0027SLO\u0027"},{"line_number":864,"context_line":"            del(new_env[\u0027wsgi.input\u0027])"},{"line_number":865,"context_line":"            del(new_env[\u0027QUERY_STRING\u0027])"},{"line_number":866,"context_line":"            new_env.pop(\u0027HTTP_IF_MATCH\u0027, None)"},{"line_number":867,"context_line":"            new_env.pop(\u0027HTTP_IF_NONE_MATCH\u0027, None)"},{"line_number":868,"context_line":"            new_env.pop(\u0027HTTP_IF_MODIFIED_SINCE\u0027, None)"},{"line_number":869,"context_line":"            new_env.pop(\u0027HTTP_IF_UNMODIFIED_SINCE\u0027, None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_5d023470","line":866,"in_reply_to":"5a18252c_5d24f4ad","updated":"2016-04-14 00:26:18.000000000","message":"wsgi.input and QUERY_STRING will always be present in req.environ, so del is fine. These headers won\u0027t necessarily be there, which would cause KeyErrors when they\u0027re not.\n\nI could either add a comment like that in the code, or just switch them all to pop. Although... I wonder why we don\u0027t use make_subrequest or make_env from common/wsgi.py here. I\u0027ll try it, see if it seems to break anything.","commit_id":"80d75c8586722508553f85d4460cacabfefd82c2"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"d4cd3a260adf09e0ec7c6134c79abec4b0abb806","unresolved":false,"context_lines":[{"line_number":863,"context_line":"                    req.environ, path\u003dobj_path + \u0027?\u0027,  # kill the query string"},{"line_number":864,"context_line":"                    method\u003d\u0027HEAD\u0027,"},{"line_number":865,"context_line":"                    headers\u003d{\u0027x-auth-token\u0027: req.headers.get(\u0027x-auth-token\u0027)},"},{"line_number":866,"context_line":"                    agent\u003d\u0027%(orig)s SLO MultipartPUT\u0027, swift_source\u003d\u0027SLO\u0027)"},{"line_number":867,"context_line":"                head_seg_resp \u003d sub_req.get_response(self)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"            if head_seg_resp.is_success:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_5603edb7","line":866,"updated":"2016-04-15 03:22:38.000000000","message":"I guess the \u0027HTTP_USER_AGENT\u0027 setting to have \u0027MultipartPUT\u0027 was not important?","commit_id":"fb3692c9bb662d9cadc4238920f86676857a7f1f"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"807473343a27c23dd3e03fb69d1bf3d54d0c1cf4","unresolved":false,"context_lines":[{"line_number":863,"context_line":"                    req.environ, path\u003dobj_path + \u0027?\u0027,  # kill the query string"},{"line_number":864,"context_line":"                    method\u003d\u0027HEAD\u0027,"},{"line_number":865,"context_line":"                    headers\u003d{\u0027x-auth-token\u0027: req.headers.get(\u0027x-auth-token\u0027)},"},{"line_number":866,"context_line":"                    agent\u003d\u0027%(orig)s SLO MultipartPUT\u0027, swift_source\u003d\u0027SLO\u0027)"},{"line_number":867,"context_line":"                head_seg_resp \u003d sub_req.get_response(self)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"            if head_seg_resp.is_success:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_7650a932","line":866,"in_reply_to":"5a18252c_5603edb7","updated":"2016-04-15 04:01:31.000000000","message":"We get it with the agent kwarg; see https://github.com/openstack/swift/blob/2.7.0/swift/common/wsgi.py#L1109-L1111\n\nI suppose I added \"SLO\" to it (which is kinda redundant with swift.source), but that seems consistent with the other subrequests here.","commit_id":"fb3692c9bb662d9cadc4238920f86676857a7f1f"}]}
