)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8caa93dce5fde62a23da744a95a800045fac9676","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add method repr() to NovaException"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add method repr() to NovaException so that kwargs are not"},{"line_number":10,"context_line":"removed when the exception is serialized. The change to return"},{"line_number":11,"context_line":"repr(Exception) instead of serializing the individual variables"},{"line_number":12,"context_line":"and arguments of the exception is"},{"line_number":13,"context_line":"https://github.com/openstack/oslo.serialization/commit/c1a7079c26d27a2e46cca26963d3d9aa040bdbe8."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1756360"},{"line_number":16,"context_line":"Change-Id: If26a5785a453466c5795369573f7a109616f24c9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df7087c5_d6915a48","line":13,"range":{"start_line":10,"start_character":42,"end_line":13,"end_character":96},"updated":"2018-03-20 17:07:08.000000000","message":"This is confusing.\n\nThe commit message should explain the bug and how this change fixes it.\n\nSo you might say something like, \"Due to change c1a7079c26d27a2e46cca26963d3d9aa040bdbe8 in oslo.serialization, serialized exceptions in errors no longer have kwargs. This change fixes the problem by...\"\n\nAlso, why wouldn\u0027t we consider reverting the oslo.serialization change instead of working around this in every project that uses oslo.serialization, because this is likely also a problem in cinder.","commit_id":"5d44edb660a1507388c29defc64f84b932c50fb4"}],"nova/exception.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"46d46d673647cf086ce27560ff2b11ae136f3c3e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        return self.args[0]"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def repr(self):"},{"line_number":106,"context_line":"        repr \u003d self"},{"line_number":107,"context_line":"        for name, value in self.kwargs.items():"},{"line_number":108,"context_line":"            repr +\u003d (\", %s: %s\" % (name, value))"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_1b305be8","line":106,"range":{"start_line":106,"start_character":8,"end_line":106,"end_character":19},"updated":"2018-03-20 16:35:32.000000000","message":"This is weird.  Did you mean super(...).__repr__() ?","commit_id":"9a52e29af700d070c14c04634ae6ee7df8ab6864"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"46d46d673647cf086ce27560ff2b11ae136f3c3e","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def repr(self):"},{"line_number":106,"context_line":"        repr \u003d self"},{"line_number":107,"context_line":"        for name, value in self.kwargs.items():"},{"line_number":108,"context_line":"            repr +\u003d (\", %s: %s\" % (name, value))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"class EncryptionFailure(NovaException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_1b4ffb34","line":108,"range":{"start_line":108,"start_character":12,"end_line":108,"end_character":16},"updated":"2018-03-20 16:35:32.000000000","message":"As written, this will complain because the repr variable doesn\u0027t start off as a string.","commit_id":"9a52e29af700d070c14c04634ae6ee7df8ab6864"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"46d46d673647cf086ce27560ff2b11ae136f3c3e","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def repr(self):"},{"line_number":106,"context_line":"        repr \u003d self"},{"line_number":107,"context_line":"        for name, value in self.kwargs.items():"},{"line_number":108,"context_line":"            repr +\u003d (\", %s: %s\" % (name, value))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"class EncryptionFailure(NovaException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_5b78132a","line":108,"range":{"start_line":108,"start_character":24,"end_line":108,"end_character":30},"updated":"2018-03-20 16:35:32.000000000","message":"This assumes \u0027value\u0027 is a string, or easily stringable.  Which it will almost always be.  But for the sake of form, I think this would play better as:\n\n repr +\u003d \", %s\u003d%s\" % (name, repr(value))","commit_id":"9a52e29af700d070c14c04634ae6ee7df8ab6864"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"46d46d673647cf086ce27560ff2b11ae136f3c3e","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def repr(self):"},{"line_number":106,"context_line":"        repr \u003d self"},{"line_number":107,"context_line":"        for name, value in self.kwargs.items():"},{"line_number":108,"context_line":"            repr +\u003d (\", %s: %s\" % (name, value))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"class EncryptionFailure(NovaException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_fb76c73e","line":108,"range":{"start_line":108,"start_character":20,"end_line":108,"end_character":21},"updated":"2018-03-20 16:35:32.000000000","message":"parens redundant","commit_id":"9a52e29af700d070c14c04634ae6ee7df8ab6864"}]}
