)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"ccb224f878af5d5cc85e20bea0934eb70d26f1e2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"In order to not log some exceptions as errors, the"},{"line_number":10,"context_line":"wsgi.Resource.__call__() was modified."},{"line_number":11,"context_line":"Instead of check if an exception is a HTTPBadRequest or a HTTPNotFound,"},{"line_number":12,"context_line":"now all the exceptions that are not childs of HTTPError are raised"},{"line_number":13,"context_line":"directly, without logging, translation or disguise."},{"line_number":14,"context_line":"If the exception is a child of HeatException, then the exception is"},{"line_number":15,"context_line":"tranlated but not logged as an error. When this exception reaches the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F80yQ%3D","line":12,"updated":"2013-12-19 22:10:00.000000000","message":"s/childs/children/","commit_id":"7cca4576f09616d6dbf7cec0d5127b04daafd248"}],"heat/common/wsgi.py":[{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"3068e09645e8567530beea9dd9036236b5d75dcf","unresolved":false,"context_lines":[{"line_number":670,"context_line":"            # won\u0027t make it into the pipeline app that serializes errors"},{"line_number":671,"context_line":"            raise exception.HTTPExceptionDisguise(http_exc)"},{"line_number":672,"context_line":"        except webob.exc.HTTPException as err:"},{"line_number":673,"context_line":"            if isinstance(err, (webob.exc.HTTPOk, webob.exc.HTTPRedirection)):"},{"line_number":674,"context_line":"                # Some HTTPException are actually not errors, they are"},{"line_number":675,"context_line":"                # responses ready to be sent back to the users, so we don\u0027t"},{"line_number":676,"context_line":"                # error log, disguise or translate those"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Mzo%3D","line":673,"updated":"2013-12-14 11:15:17.000000000","message":"How about just changing this line to  if not isinstance(err, webob.exc.HTTPServerError) ?","commit_id":"4f353f0d5e1952fc6b249e7e3ac747e7cf70f597"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"d4d6a3eaba3683f18e24d418c25887aff0844557","unresolved":false,"context_lines":[{"line_number":670,"context_line":"            # won\u0027t make it into the pipeline app that serializes errors"},{"line_number":671,"context_line":"            raise exception.HTTPExceptionDisguise(http_exc)"},{"line_number":672,"context_line":"        except webob.exc.HTTPException as err:"},{"line_number":673,"context_line":"            if isinstance(err, (webob.exc.HTTPOk, webob.exc.HTTPRedirection)):"},{"line_number":674,"context_line":"                # Some HTTPException are actually not errors, they are"},{"line_number":675,"context_line":"                # responses ready to be sent back to the users, so we don\u0027t"},{"line_number":676,"context_line":"                # error log, disguise or translate those"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9B70%3D","line":673,"in_reply_to":"AAAATn%2F9Ebo%3D","updated":"2013-12-17 14:25:13.000000000","message":"If I use HTTPServerError, the HTTPClientError exception family will be raised without disguise, and the exception will not reach the FaultWrapper Middleware and it won\u0027t be logged (as debug). In other words, the exception will be untraceable in logs. I think it would be more appropiate to use HTTPError (this includes Client and Server errors) instead. I\u0027ll upload a new patch with these changes.","commit_id":"4f353f0d5e1952fc6b249e7e3ac747e7cf70f597"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"46332350bbd8fe9432e7ff137e87f70c290c431e","unresolved":false,"context_lines":[{"line_number":670,"context_line":"            # won\u0027t make it into the pipeline app that serializes errors"},{"line_number":671,"context_line":"            raise exception.HTTPExceptionDisguise(http_exc)"},{"line_number":672,"context_line":"        except webob.exc.HTTPException as err:"},{"line_number":673,"context_line":"            if isinstance(err, (webob.exc.HTTPOk, webob.exc.HTTPRedirection)):"},{"line_number":674,"context_line":"                # Some HTTPException are actually not errors, they are"},{"line_number":675,"context_line":"                # responses ready to be sent back to the users, so we don\u0027t"},{"line_number":676,"context_line":"                # error log, disguise or translate those"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Ebo%3D","line":673,"in_reply_to":"AAAATn%2F9HoI%3D","updated":"2013-12-17 04:08:34.000000000","message":"It doesn\u0027t seem good to handle those individual 400 http exceptions separately - there are many. We can at treat a category of them as a whole (actually we have already done that for 200 and 300 category here) .\n\nwebob.exc.HTTPServerError doesn\u0027t include HTTPOk, so if not isinstance(err, webob.exc.HTTPServerError) would not make HTTPOk or webob.exc.HTTPRedirection translated and disguised.\n\nI wonder if we really need to translate and disguise the other ones from 400 category - line 678 excludes 400 and 404. If not, it is safe to use if not isinstance(err, webob.exc.HTTPServerError). Because there are only three possibilities left there, webob.exc.HTTPOk, webob.exc.HTTPRedirection, and HTTPClientError if an err is webob.exc.HTTPException but not webob.exc.HTTPServerError.","commit_id":"4f353f0d5e1952fc6b249e7e3ac747e7cf70f597"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"a4d69d33c1e94fc7ea27f42152d2d10202ad16d4","unresolved":false,"context_lines":[{"line_number":670,"context_line":"            # won\u0027t make it into the pipeline app that serializes errors"},{"line_number":671,"context_line":"            raise exception.HTTPExceptionDisguise(http_exc)"},{"line_number":672,"context_line":"        except webob.exc.HTTPException as err:"},{"line_number":673,"context_line":"            if isinstance(err, (webob.exc.HTTPOk, webob.exc.HTTPRedirection)):"},{"line_number":674,"context_line":"                # Some HTTPException are actually not errors, they are"},{"line_number":675,"context_line":"                # responses ready to be sent back to the users, so we don\u0027t"},{"line_number":676,"context_line":"                # error log, disguise or translate those"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9HoI%3D","line":673,"in_reply_to":"AAAATn%2F9Mzo%3D","updated":"2013-12-16 16:27:57.000000000","message":"I think not, because we need to handle different some weob.exceptions. eg: an HTTPOk no needs to be translated and disguised.\nMaybe that line could be put in the elif sentence. I put only those two exceptions because to solve the bug are enough, but if you think that is better to change the line in order to include all the ones that aren\u0027t a HTTPSeverException, I\u0027ll be glad to change it.","commit_id":"4f353f0d5e1952fc6b249e7e3ac747e7cf70f597"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"3068e09645e8567530beea9dd9036236b5d75dcf","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                          {\u0027code\u0027: err.code, \u0027explanation\u0027: err.explanation})"},{"line_number":685,"context_line":"            http_exc \u003d translate_exception(err, request.best_match_language())"},{"line_number":686,"context_line":"            raise exception.HTTPExceptionDisguise(http_exc)"},{"line_number":687,"context_line":"        except exception.HeatClientException as err:"},{"line_number":688,"context_line":"            raise translate_exception(err, request.best_match_language())"},{"line_number":689,"context_line":"        except exception.HeatException as err:"},{"line_number":690,"context_line":"            log_exception(err, sys.exc_info())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Mzg%3D","line":687,"updated":"2013-12-14 11:15:17.000000000","message":"Perhaps some debug level log here?","commit_id":"4f353f0d5e1952fc6b249e7e3ac747e7cf70f597"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"a4d69d33c1e94fc7ea27f42152d2d10202ad16d4","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                          {\u0027code\u0027: err.code, \u0027explanation\u0027: err.explanation})"},{"line_number":685,"context_line":"            http_exc \u003d translate_exception(err, request.best_match_language())"},{"line_number":686,"context_line":"            raise exception.HTTPExceptionDisguise(http_exc)"},{"line_number":687,"context_line":"        except exception.HeatClientException as err:"},{"line_number":688,"context_line":"            raise translate_exception(err, request.best_match_language())"},{"line_number":689,"context_line":"        except exception.HeatException as err:"},{"line_number":690,"context_line":"            log_exception(err, sys.exc_info())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9IXk%3D","line":687,"in_reply_to":"AAAATn%2F9Mzg%3D","updated":"2013-12-16 16:27:57.000000000","message":"Done.\nI\u0027ll wait your thoughts about the other comment to upload the new patch.","commit_id":"4f353f0d5e1952fc6b249e7e3ac747e7cf70f597"}],"heat/tests/test_wsgi.py":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"ccb224f878af5d5cc85e20bea0934eb70d26f1e2","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    ]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def setUp(self):"},{"line_number":246,"context_line":"        super(ResourceExceptionHandlingTest, self).setUp()"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def test_resource_client_exceptions_dont_log_error(self):"},{"line_number":249,"context_line":"        class Controller(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F80xo%3D","line":246,"updated":"2013-12-19 22:10:00.000000000","message":"This upcall is not needed and the whole setUp method should be removed.","commit_id":"7cca4576f09616d6dbf7cec0d5127b04daafd248"}]}
