)]}'
{"nova/api/openstack/__init__.py":[{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"971632920c71f59371eb1164c26cee771a9a4927","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        # NOTE(eglynn): However, it would be over-conservative and"},{"line_number":50,"context_line":"        # inconsistent with the EC2 API to hide every exception,"},{"line_number":51,"context_line":"        # including those that are safe to expose, see bug 1021373"},{"line_number":52,"context_line":"        if check_safety and inner.safe:"},{"line_number":53,"context_line":"            outer.explanation \u003d \u0027%s: %s\u0027 % (inner.__class__.__name__,"},{"line_number":54,"context_line":"                                            unicode(inner))"},{"line_number":55,"context_line":"        return wsgi.Fault(outer)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAKX%2F%2F%2FXc%3D","line":52,"updated":"2012-07-09 18:34:21.000000000","message":"So inner can be an exception of type Exception it seems. Checking for the safe attribute then would be unsafe (heh).\n\nChanging to this would be better:\n\n    if check_safety and getattr(inner, \u0027safe\u0027, False):","commit_id":"5b5f8875cff3e5952d778261be259c8ab26053ad"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3713f51395e6f1b273f5895af2466958228743c9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        # NOTE(eglynn): However, it would be over-conservative and"},{"line_number":50,"context_line":"        # inconsistent with the EC2 API to hide every exception,"},{"line_number":51,"context_line":"        # including those that are safe to expose, see bug 1021373"},{"line_number":52,"context_line":"        if check_safety and inner.safe:"},{"line_number":53,"context_line":"            outer.explanation \u003d \u0027%s: %s\u0027 % (inner.__class__.__name__,"},{"line_number":54,"context_line":"                                            unicode(inner))"},{"line_number":55,"context_line":"        return wsgi.Fault(outer)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAKX%2F%2F%2FTo%3D","line":52,"in_reply_to":"AAAAKX%2F%2F%2FXc%3D","updated":"2012-07-09 20:01:02.000000000","message":"See latest patch set for a slightly simpler approach that achieves the same end.","commit_id":"5b5f8875cff3e5952d778261be259c8ab26053ad"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"939cd6a3f8ab81044f8d09c5ad686beffd206426","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class FaultWrapper(base_wsgi.Middleware):"},{"line_number":37,"context_line":"    \"\"\"Calls down the middleware stack, making exceptions into faults.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _error(aelf, inner, req, safe\u003dFalse):"},{"line_number":40,"context_line":"        LOG.exception(_(\"Caught error: %s\"), unicode(inner))"},{"line_number":41,"context_line":"        msg_dict \u003d dict(url\u003dreq.url, status\u003d500)"},{"line_number":42,"context_line":"        LOG.info(_(\"%(url)s returned with HTTP %(status)d\") % msg_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAKX%2F%2F%2FTc%3D","line":39,"updated":"2012-07-09 20:03:28.000000000","message":"aelf -\u003e self :)","commit_id":"a053aa56fb195697a577c0f86666fdbe4ddf6de4"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"f233a5837e18507d68278d430eb9bae934119ef6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class FaultWrapper(base_wsgi.Middleware):"},{"line_number":37,"context_line":"    \"\"\"Calls down the middleware stack, making exceptions into faults.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _error(aelf, inner, req, safe\u003dFalse):"},{"line_number":40,"context_line":"        LOG.exception(_(\"Caught error: %s\"), unicode(inner))"},{"line_number":41,"context_line":"        msg_dict \u003d dict(url\u003dreq.url, status\u003d500)"},{"line_number":42,"context_line":"        LOG.info(_(\"%(url)s returned with HTTP %(status)d\") % msg_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAKX%2F%2F%2FTI%3D","line":39,"in_reply_to":"AAAAKX%2F%2F%2FTc%3D","updated":"2012-07-09 20:15:34.000000000","message":"Whoops, fat fingers. Fixed.","commit_id":"a053aa56fb195697a577c0f86666fdbe4ddf6de4"}]}
