)]}'
{"keystone/catalog/core.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"58079aa4d4282ee238f5711592aa407534ede0e4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    except KeyError as e:"},{"line_number":41,"context_line":"        LOG.error(\"Malformed endpoint %s - unknown key %s\" %"},{"line_number":42,"context_line":"                  (url, str(e)))"},{"line_number":43,"context_line":"        raise exception.MalformedEndpoint(endpoint\u003durl, key\u003de)"},{"line_number":44,"context_line":"    return result"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FMcI%3D","line":43,"updated":"2012-10-06 01:57:58.000000000","message":"Can you also catch TypeError and ValueError, with relevant error messages?\n\nraises a TypeError:\n\n    \u0027http://example.com/tenants/%tenant_id%\u0027 % d\n\nraises a ValueError:\n\n    \u0027http://example.com/tenants/%(tenant_id)\u0027 % d\n\nI\u0027m not sure what else could be raised here.","commit_id":"ee0fc8ded975b912bc500ac2ade686ff393cc967"},{"author":{"_account_id":4411,"name":"stef-ummon","email":"stelford@internap.com","username":"stef-ummon"},"change_message_id":"3d7d86ada58e1adb350fe51fb1a66c6486ad95b6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    except KeyError as e:"},{"line_number":41,"context_line":"        LOG.error(\"Malformed endpoint %s - unknown key %s\" %"},{"line_number":42,"context_line":"                  (url, str(e)))"},{"line_number":43,"context_line":"        raise exception.MalformedEndpoint(endpoint\u003durl, key\u003de)"},{"line_number":44,"context_line":"    return result"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FMbc%3D","line":43,"in_reply_to":"AAAALH%2F%2FMcI%3D","updated":"2012-10-06 02:56:47.000000000","message":"can do.","commit_id":"ee0fc8ded975b912bc500ac2ade686ff393cc967"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a19229803c3605a492ba045ad10bb1cece223500","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    except ValueError as e:"},{"line_number":50,"context_line":"        LOG.error(\"Malformed endpoint %s - incomplete format \\"},{"line_number":51,"context_line":"                  (are you missing a type notifier ?)\" % url)"},{"line_number":52,"context_line":"        raise exception.MalformedEndpoint(endpoint\u003durl, key\u003de)"},{"line_number":53,"context_line":"    return result"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FMTI%3D","line":52,"updated":"2012-10-06 19:36:22.000000000","message":"you\u0027re still passing in `key\u003de` on these","commit_id":"21270406c9c9f772cdb9ee0b4e166b87f767a585"},{"author":{"_account_id":4411,"name":"stef-ummon","email":"stelford@internap.com","username":"stef-ummon"},"change_message_id":"80161f1d3757c1b60fd57d4e3b42d3fb0848dbc3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    except ValueError as e:"},{"line_number":50,"context_line":"        LOG.error(\"Malformed endpoint %s - incomplete format \\"},{"line_number":51,"context_line":"                  (are you missing a type notifier ?)\" % url)"},{"line_number":52,"context_line":"        raise exception.MalformedEndpoint(endpoint\u003durl, key\u003de)"},{"line_number":53,"context_line":"    return result"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FMSw%3D","line":52,"in_reply_to":"AAAALH%2F%2FMTI%3D","updated":"2012-10-06 20:42:14.000000000","message":"Done","commit_id":"21270406c9c9f772cdb9ee0b4e166b87f767a585"}],"keystone/exception.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"58079aa4d4282ee238f5711592aa407534ede0e4","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    title \u003d \u0027Conflict\u0027"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class MalformedEndpoint(Error):"},{"line_number":117,"context_line":"    \"\"\"Malformed endpoint %(endpoint)s has unknown key %(key)s\"\"\""},{"line_number":118,"context_line":"    code \u003d 500"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FMcE%3D","line":116,"updated":"2012-10-06 01:57:58.000000000","message":"This should just extend UnexpectedError, and then you don\u0027t have to override anything but the docstring -- as is, I think this will render as a \"500 None\" error, because Error.title is not overridden.","commit_id":"ee0fc8ded975b912bc500ac2ade686ff393cc967"},{"author":{"_account_id":4411,"name":"stef-ummon","email":"stelford@internap.com","username":"stef-ummon"},"change_message_id":"3d7d86ada58e1adb350fe51fb1a66c6486ad95b6","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    title \u003d \u0027Conflict\u0027"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class MalformedEndpoint(Error):"},{"line_number":117,"context_line":"    \"\"\"Malformed endpoint %(endpoint)s has unknown key %(key)s\"\"\""},{"line_number":118,"context_line":"    code \u003d 500"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FMbQ%3D","line":116,"in_reply_to":"AAAALH%2F%2FMcE%3D","updated":"2012-10-06 02:56:47.000000000","message":"yup.. I should have put in the title. I will extended UnexpectedError though.","commit_id":"ee0fc8ded975b912bc500ac2ade686ff393cc967"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9cd2ed82f5c7be3854c8928907a830b12ad80fbf","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"class MalformedEndpoint(UnexpectedError):"},{"line_number":127,"context_line":"    \"\"\"Malformed endpoint %(endpoint)s has unknown key %(key)s\"\"\""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"class NotImplemented(Error):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FMYY%3D","line":127,"updated":"2012-10-06 11:33:09.000000000","message":"This entirety of the error message only applies to the original KeyError -- maybe just make it say\n\n    \"\"\"Malformed endpoint URL (see ERROR log for details): %(endpoint)s\"\"\"","commit_id":"7f78ab0ec05c4bf05d9be0a434a5bc87f9f20f2d"},{"author":{"_account_id":4411,"name":"stef-ummon","email":"stelford@internap.com","username":"stef-ummon"},"change_message_id":"6fb84cab1808e750670084b01cc12eff405d9808","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"class MalformedEndpoint(UnexpectedError):"},{"line_number":127,"context_line":"    \"\"\"Malformed endpoint %(endpoint)s has unknown key %(key)s\"\"\""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"class NotImplemented(Error):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FMVU%3D","line":127,"in_reply_to":"AAAALH%2F%2FMYY%3D","updated":"2012-10-06 17:20:17.000000000","message":"makes sense, done.","commit_id":"7f78ab0ec05c4bf05d9be0a434a5bc87f9f20f2d"}]}
