)]}'
{"nova/api/openstack/wsgi.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"23a39aa1b63d0d91dca1f7f840ebc56f74a7942a","unresolved":false,"context_lines":[{"line_number":875,"context_line":"        if action \u003d\u003d \u0027action\u0027:"},{"line_number":876,"context_line":"            # OK, it\u0027s an action; figure out which action..."},{"line_number":877,"context_line":"            mtype \u003d get_media_map().get(content_type)"},{"line_number":878,"context_line":"            action_name \u003d self.action_peek[mtype](body)"},{"line_number":879,"context_line":"        else:"},{"line_number":880,"context_line":"            action_name \u003d action"},{"line_number":881,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_a29c2f6a","side":"PARENT","line":878,"updated":"2016-01-21 00:36:59.000000000","message":"Originally I didn\u0027t want to change this in this patch, however with the content_type validation shifted, this code no longer could correctly react to None as content_type.","commit_id":"f7adbfdb9e163bb9369b26fe30bb353204adb8be"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ea163973527b417a002864505c39c89909252ed","unresolved":false,"context_lines":[{"line_number":526,"context_line":"    \"\"\""},{"line_number":527,"context_line":"    support_api_request_version \u003d False"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def __init__(self, controller, action_peek\u003dNone, inherits\u003dNone):"},{"line_number":530,"context_line":"        \"\"\":param controller: object that implement methods created by routes"},{"line_number":531,"context_line":"                              lib"},{"line_number":532,"context_line":"           :param action_peek: dictionary of routines for peeking into an"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_0cfe926b","line":529,"range":{"start_line":529,"start_character":35,"end_line":529,"end_character":51},"updated":"2016-01-20 23:51:45.000000000","message":"So now, the action_peek parameter is unused.  Should it be removed?  Can it?","commit_id":"70c16f0b167c85d3b055add1e16674c854490c07"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"23a39aa1b63d0d91dca1f7f840ebc56f74a7942a","unresolved":false,"context_lines":[{"line_number":526,"context_line":"    \"\"\""},{"line_number":527,"context_line":"    support_api_request_version \u003d False"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def __init__(self, controller, action_peek\u003dNone, inherits\u003dNone):"},{"line_number":530,"context_line":"        \"\"\":param controller: object that implement methods created by routes"},{"line_number":531,"context_line":"                              lib"},{"line_number":532,"context_line":"           :param action_peek: dictionary of routines for peeking into an"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_0ffe846b","line":529,"range":{"start_line":529,"start_character":35,"end_line":529,"end_character":51},"in_reply_to":"9a68dd71_0cfe926b","updated":"2016-01-21 00:36:59.000000000","message":"The answer is yes, but in a follow on patch, I think. By the end of this I expect the code is not going to look much like when we started, so trying to do the minimal patch removals that I can.\n\nThe action_peek dict delete was required because there is no longer a catcher for bad content types around this code.","commit_id":"70c16f0b167c85d3b055add1e16674c854490c07"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ea163973527b417a002864505c39c89909252ed","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            return meth, self.wsgi_extensions.get(action, [])"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"        if action \u003d\u003d \u0027action\u0027:"},{"line_number":855,"context_line":"            action_name \u003d self.action_peek(body)"},{"line_number":856,"context_line":"        else:"},{"line_number":857,"context_line":"            action_name \u003d action"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_cc54fa55","line":855,"updated":"2016-01-20 23:51:45.000000000","message":"so now, action_peek_json() can become just an action_peek() method on this class…","commit_id":"70c16f0b167c85d3b055add1e16674c854490c07"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"23a39aa1b63d0d91dca1f7f840ebc56f74a7942a","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            return meth, self.wsgi_extensions.get(action, [])"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"        if action \u003d\u003d \u0027action\u0027:"},{"line_number":855,"context_line":"            action_name \u003d self.action_peek(body)"},{"line_number":856,"context_line":"        else:"},{"line_number":857,"context_line":"            action_name \u003d action"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_2f3a6837","line":855,"in_reply_to":"9a68dd71_cc54fa55","updated":"2016-01-21 00:36:59.000000000","message":"Yes, I think that\u0027s where we get to. I was just trying to slice in small chunks to make it easier to review","commit_id":"70c16f0b167c85d3b055add1e16674c854490c07"}]}
