)]}'
{"nova/api/openstack/placement/handler.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0edbb2797334346ad690b7a07dab959467437012","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        # this doesn\u0027t happen here then webob.dec.wsgify (elsewhere"},{"line_number":160,"context_line":"        # in the stack) will raise an uncaught KeyError. Since that"},{"line_number":161,"context_line":"        # is such a generic exception we cannot merely catch it"},{"line_number":162,"context_line":"        # here, we need to avoid it every happening."},{"line_number":163,"context_line":"        # TODO(cdent): Move this and the auth checking above into"},{"line_number":164,"context_line":"        # middleware. It shouldn\u0027t be here. This is for dispatch not"},{"line_number":165,"context_line":"        # validation or authorization."}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_e2ee53b3","line":162,"range":{"start_line":162,"start_character":36,"end_line":162,"end_character":41},"updated":"2016-09-14 19:57:38.000000000","message":"ever","commit_id":"a44dff5e22ad3f19988bd1a39dc2e5c5c857f2b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0edbb2797334346ad690b7a07dab959467437012","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        # validation or authorization."},{"line_number":166,"context_line":"        request_method \u003d environ[\u0027REQUEST_METHOD\u0027].upper()"},{"line_number":167,"context_line":"        if request_method in (\u0027POST\u0027, \u0027PUT\u0027, \u0027PATCH\u0027):"},{"line_number":168,"context_line":"            if \u0027CONTENT_TYPE\u0027 not in environ:"},{"line_number":169,"context_line":"                raise webob.exc.HTTPBadRequest("},{"line_number":170,"context_line":"                    \u0027content-type header required\u0027,"},{"line_number":171,"context_line":"                    json_formatter\u003dutil.json_error_formatter)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_22167ba7","line":168,"range":{"start_line":168,"start_character":16,"end_line":168,"end_character":28},"updated":"2016-09-14 19:57:38.000000000","message":"Is this guaranteed to be upper-case? I only ask because you did an upper() on REQUEST_METHOD above.","commit_id":"a44dff5e22ad3f19988bd1a39dc2e5c5c857f2b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0edbb2797334346ad690b7a07dab959467437012","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        if request_method in (\u0027POST\u0027, \u0027PUT\u0027, \u0027PATCH\u0027):"},{"line_number":168,"context_line":"            if \u0027CONTENT_TYPE\u0027 not in environ:"},{"line_number":169,"context_line":"                raise webob.exc.HTTPBadRequest("},{"line_number":170,"context_line":"                    \u0027content-type header required\u0027,"},{"line_number":171,"context_line":"                    json_formatter\u003dutil.json_error_formatter)"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            return dispatch(environ, start_response, self._map)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_82274f11","line":170,"updated":"2016-09-14 19:57:38.000000000","message":"Let\u0027s mark this for translation with _().","commit_id":"a44dff5e22ad3f19988bd1a39dc2e5c5c857f2b7"}]}
