)]}'
{"horizon/exceptions.py":[{"author":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"change_message_id":"9b0fcf9ab419d82ce5c9ef1d647322035e16412d","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            log_method(error_color(\"Unauthorized: %s\" % exc_value))"},{"line_number":279,"context_line":"        if not handled:"},{"line_number":280,"context_line":"            if message:"},{"line_number":281,"context_line":"                message \u003d _(\"Unauthorized: \") + message"},{"line_number":282,"context_line":"            # We get some pretty useless error messages back from"},{"line_number":283,"context_line":"            # some clients, so let\u0027s define our own fallback."},{"line_number":284,"context_line":"            fallback \u003d _(\"Unauthorized. Please try logging in again.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOH%2F%2F%2FQ8%3D","line":281,"updated":"2013-03-18 03:26:10.000000000","message":"If I hack nova.server_list to return novaclient.exceptions.Unauthorized(\u0027somemessage\u0027) and go to /project/instances I get an error:\n\"coercing to Unicode: need string or buffer, __proxy__ found\"\n\nThink this needs to be a string format instead of + due to gettext shenanigans.","commit_id":"f8e73324cc72b112fcc5312cac8d4f02ee17441f"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"c1c1aff871eb83799a43306b992109dade4dd3d1","unresolved":false,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    Exceptions are roughly divided into 3 types:"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    #. ``UNAUTHORIZED``: Errors resulting from authentication or authorization"},{"line_number":230,"context_line":"       problems. These result in being logged out and sent to the login screen."},{"line_number":231,"context_line":"    #. ``NOT_FOUND``: Errors resulting from objects which could not be"},{"line_number":232,"context_line":"       located via the API. These generally result in a user-facing error"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2BgU%3D","line":229,"updated":"2013-03-18 19:28:38.000000000","message":"Change the description for the new behavior.","commit_id":"e1d12a4e49ab720f69b8a82a573faf68d1d8761f"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"c1c1aff871eb83799a43306b992109dade4dd3d1","unresolved":false,"context_lines":[{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    if issubclass(exc_type, UNAUTHORIZED):"},{"line_number":275,"context_line":"        if ignore:"},{"line_number":276,"context_line":"            return NotAuthorized"},{"line_number":277,"context_line":"        if not force_silence and not handled:"},{"line_number":278,"context_line":"            log_method(error_color(\"Unauthorized: %s\" % exc_value))"},{"line_number":279,"context_line":"        if not handled:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2Bgc%3D","line":276,"updated":"2013-03-18 19:28:38.000000000","message":"Won\u0027t throwing NotAuthorized here cause the middleware to catch the exception and redirect the user to login page?","commit_id":"e1d12a4e49ab720f69b8a82a573faf68d1d8761f"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"1638e44f7d63e90c6a3272cd4f1bb18d5caede52","unresolved":false,"context_lines":[{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    if issubclass(exc_type, UNAUTHORIZED):"},{"line_number":275,"context_line":"        if ignore:"},{"line_number":276,"context_line":"            return NotAuthorized"},{"line_number":277,"context_line":"        if not force_silence and not handled:"},{"line_number":278,"context_line":"            log_method(error_color(\"Unauthorized: %s\" % exc_value))"},{"line_number":279,"context_line":"        if not handled:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F9xY%3D","line":276,"in_reply_to":"AAAAOH%2F%2F%2Bcw%3D","updated":"2013-03-19 05:18:16.000000000","message":"Sounds good, thanks for the clarification","commit_id":"e1d12a4e49ab720f69b8a82a573faf68d1d8761f"},{"author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"change_message_id":"01e02373c2867f0f9e7734fecc8347fa3edb674d","unresolved":false,"context_lines":[{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    if issubclass(exc_type, UNAUTHORIZED):"},{"line_number":275,"context_line":"        if ignore:"},{"line_number":276,"context_line":"            return NotAuthorized"},{"line_number":277,"context_line":"        if not force_silence and not handled:"},{"line_number":278,"context_line":"            log_method(error_color(\"Unauthorized: %s\" % exc_value))"},{"line_number":279,"context_line":"        if not handled:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2Bcw%3D","line":276,"in_reply_to":"AAAAOH%2F%2F%2Bgc%3D","updated":"2013-03-18 19:57:09.000000000","message":"It returns it (in case the coder ever wanted to introspect it or somesuch), not raises it. So, short answer, no.","commit_id":"e1d12a4e49ab720f69b8a82a573faf68d1d8761f"}]}
