)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0a94f48eadb0eedf3631ff917bf212d15d29e631","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2018-03-23 11:29:09 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add __repr__ for NovaException"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Due to change c1a7079c26d27a2e46cca26963d3d9aa040bdbe8 in"},{"line_number":10,"context_line":"oslo.serialization, serialized exceptions in errors no longer"},{"line_number":11,"context_line":"have kwargs. This change fixes the problem by adding __repr__"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bf659307_457da9af","line":8,"updated":"2018-03-26 13:37:41.000000000","message":"Matt had a comment in the other [1] patch you proposed and that is left unanswered:\n\"Also, 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.\"\n\n\n[1]https://review.openstack.org/#/c/554607/","commit_id":"896391c9fca0c304b4cb9e1d5fffee260500e6d3"},{"author":{"_account_id":22522,"name":"Tyler Blakeslee","email":"tblakes@us.ibm.com","username":"tblakes"},"change_message_id":"fad0f137bb3465de5ecbf7b497205b9715798d40","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2018-03-23 11:29:09 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add __repr__ for NovaException"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Due to change c1a7079c26d27a2e46cca26963d3d9aa040bdbe8 in"},{"line_number":10,"context_line":"oslo.serialization, serialized exceptions in errors no longer"},{"line_number":11,"context_line":"have kwargs. This change fixes the problem by adding __repr__"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bf659307_e9e37704","line":8,"in_reply_to":"bf659307_457da9af","updated":"2018-03-26 14:55:48.000000000","message":"We cannot revert this change because it is necessary to fix a circular import error.\n\nYou can find more info at: https://review.openstack.org/#/c/508287/.\n\nI talked with John Villalovos and Ben Nemec in IRC and they confirmed that the change should not be rolled back.","commit_id":"896391c9fca0c304b4cb9e1d5fffee260500e6d3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0a94f48eadb0eedf3631ff917bf212d15d29e631","unresolved":false,"context_lines":[{"line_number":14,"context_line":"along with all the kwargs. Without __repr__, the serialization"},{"line_number":15,"context_line":"process for exceptions just returns the exception type and the"},{"line_number":16,"context_line":"default message, without the kwargs."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I653282a030d03362dfca0fd1026cebe920d54e37"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bf659307_8500a136","line":17,"updated":"2018-03-26 13:37:41.000000000","message":"Please add a Closes-Bug tag that refers to the original bug you reported https://bugs.launchpad.net/nova/+bug/1756360","commit_id":"896391c9fca0c304b4cb9e1d5fffee260500e6d3"}],"nova/exception.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8e2a0433dd8a98912a0d7834c89754db606e1c0c","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":"        return str(self.__dict__)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class EncryptionFailure(NovaException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_3f804bf7","line":106,"range":{"start_line":106,"start_character":15,"end_line":106,"end_character":33},"updated":"2018-03-23 14:31:47.000000000","message":"I would think you would also want the exception class in the repr.","commit_id":"cd5b8103ab9aff753755802e6fc057b70a1dec2a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"341b346947e1a464c329647489784fe0dff345e2","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def __repr__(self):"},{"line_number":106,"context_line":"        dict_repr \u003d self.__dict__"},{"line_number":107,"context_line":"        dict_repr[\u0027class\u0027] \u003d self.__class__.__name__"},{"line_number":108,"context_line":"        return str(dict_repr)"},{"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":5,"id":"bf659307_9638e73d","line":108,"range":{"start_line":108,"start_character":15,"end_line":108,"end_character":18},"updated":"2018-04-05 20:09:10.000000000","message":"melwitt pointed this out in IRC, but this likely breaks if there is unicode in the exception, should probably be using six.text_type here - we should have a test with an exception that has unicode in it to verify.","commit_id":"cc457dfffad7c4980e6f36364bdf190c79cf23e1"}],"nova/tests/unit/test_exception.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0a94f48eadb0eedf3631ff917bf212d15d29e631","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        self.assertEqual(exc_kwargs.get(\u0027code\u0027), 500)"},{"line_number":244,"context_line":"        self.assertEqual(eval_repr.get(\u0027message\u0027), \u0027some message\u0027)"},{"line_number":245,"context_line":"        self.assertEqual(eval_repr.get(\u0027class\u0027), \u0027FakeNovaException\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class ConvertedExceptionTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_203503db","line":245,"range":{"start_line":245,"start_character":0,"end_line":245,"end_character":69},"updated":"2018-03-26 13:37:41.000000000","message":"Based on my reproduction (see the comments in bug https://bugs.launchpad.net/nova/+bug/1756360 ) the original format of an exception was\n\n{\u0027kwargs\u0027: {\u0027code\u0027: 500, \u0027reason\u0027: \u0027\u0027},\n \u0027message\u0027: u\u0027No valid host was found. \u0027}\n\nSo the \u0027class\u0027 field seems to be an extra addition here.","commit_id":"896391c9fca0c304b4cb9e1d5fffee260500e6d3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1033849e91364b65cf123ca32f744fa9fcd941fc","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        exc_repr \u003d repr(mock_exc)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        eval_repr \u003d eval(exc_repr)"},{"line_number":241,"context_line":"        exc_kwargs \u003d eval_repr.get(\u0027kwargs\u0027)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        self.assertEqual(exc_kwargs.get(\u0027code\u0027), 500)"},{"line_number":244,"context_line":"        self.assertEqual(eval_repr.get(\u0027message\u0027), \u0027some message\u0027)"},{"line_number":245,"context_line":"        self.assertEqual(eval_repr.get(\u0027class\u0027), \u0027FakeNovaException\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class ConvertedExceptionTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_92356cfa","line":245,"range":{"start_line":241,"start_character":0,"end_line":245,"end_character":69},"updated":"2018-03-23 20:12:55.000000000","message":"These could all use [\u0027foo\u0027] instead of .get(\u0027foo\u0027).  But meh.","commit_id":"896391c9fca0c304b4cb9e1d5fffee260500e6d3"},{"author":{"_account_id":22522,"name":"Tyler Blakeslee","email":"tblakes@us.ibm.com","username":"tblakes"},"change_message_id":"fad0f137bb3465de5ecbf7b497205b9715798d40","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        self.assertEqual(exc_kwargs.get(\u0027code\u0027), 500)"},{"line_number":244,"context_line":"        self.assertEqual(eval_repr.get(\u0027message\u0027), \u0027some message\u0027)"},{"line_number":245,"context_line":"        self.assertEqual(eval_repr.get(\u0027class\u0027), \u0027FakeNovaException\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class ConvertedExceptionTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_c9f9d380","line":245,"range":{"start_line":245,"start_character":0,"end_line":245,"end_character":69},"in_reply_to":"bf659307_203503db","updated":"2018-03-26 14:55:48.000000000","message":"Eric Fried requested that the class field be included in the response so I added it. Do you think it should be removed so the new response is as close as possible to the original?","commit_id":"896391c9fca0c304b4cb9e1d5fffee260500e6d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"766950d7c2b39ade762bb1e1a7301e2cf41dc993","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        exc_repr \u003d repr(mock_exc)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        eval_repr \u003d eval(exc_repr)"},{"line_number":241,"context_line":"        exc_kwargs \u003d eval_repr.get(\u0027kwargs\u0027)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        self.assertEqual(exc_kwargs.get(\u0027code\u0027), 500)"},{"line_number":244,"context_line":"        self.assertEqual(eval_repr.get(\u0027message\u0027), \u0027some message\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_ec92d358","line":241,"range":{"start_line":241,"start_character":8,"end_line":241,"end_character":18},"updated":"2018-04-04 18:06:54.000000000","message":"How about asserting that this isn\u0027t None before using it?","commit_id":"d065997094aee5727a335fb97af7103eb524f37c"},{"author":{"_account_id":22522,"name":"Tyler Blakeslee","email":"tblakes@us.ibm.com","username":"tblakes"},"change_message_id":"2ef2b992ac2ae9583fc78cc760fe0fb75fcf39ad","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        exc_repr \u003d repr(mock_exc)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        eval_repr \u003d eval(exc_repr)"},{"line_number":241,"context_line":"        exc_kwargs \u003d eval_repr.get(\u0027kwargs\u0027)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        self.assertEqual(exc_kwargs.get(\u0027code\u0027), 500)"},{"line_number":244,"context_line":"        self.assertEqual(eval_repr.get(\u0027message\u0027), \u0027some message\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_12939ca5","line":241,"range":{"start_line":241,"start_character":8,"end_line":241,"end_character":18},"in_reply_to":"bf659307_ec92d358","updated":"2018-04-04 19:16:45.000000000","message":"Done","commit_id":"d065997094aee5727a335fb97af7103eb524f37c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"766950d7c2b39ade762bb1e1a7301e2cf41dc993","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        eval_repr \u003d eval(exc_repr)"},{"line_number":241,"context_line":"        exc_kwargs \u003d eval_repr.get(\u0027kwargs\u0027)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        self.assertEqual(exc_kwargs.get(\u0027code\u0027), 500)"},{"line_number":244,"context_line":"        self.assertEqual(eval_repr.get(\u0027message\u0027), \u0027some message\u0027)"},{"line_number":245,"context_line":"        self.assertEqual(eval_repr.get(\u0027class\u0027), \u0027FakeNovaException\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class ConvertedExceptionTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_8cd6b727","line":245,"range":{"start_line":243,"start_character":8,"end_line":245,"end_character":69},"updated":"2018-04-04 18:06:54.000000000","message":"The params here should all be flipped, since the signature is (expected, actual), which normally doesn\u0027t matter unless the assertion fails, then the MismatchError message will be confusing.","commit_id":"d065997094aee5727a335fb97af7103eb524f37c"},{"author":{"_account_id":22522,"name":"Tyler Blakeslee","email":"tblakes@us.ibm.com","username":"tblakes"},"change_message_id":"2ef2b992ac2ae9583fc78cc760fe0fb75fcf39ad","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        eval_repr \u003d eval(exc_repr)"},{"line_number":241,"context_line":"        exc_kwargs \u003d eval_repr.get(\u0027kwargs\u0027)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        self.assertEqual(exc_kwargs.get(\u0027code\u0027), 500)"},{"line_number":244,"context_line":"        self.assertEqual(eval_repr.get(\u0027message\u0027), \u0027some message\u0027)"},{"line_number":245,"context_line":"        self.assertEqual(eval_repr.get(\u0027class\u0027), \u0027FakeNovaException\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class ConvertedExceptionTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_b28f5074","line":245,"range":{"start_line":243,"start_character":8,"end_line":245,"end_character":69},"in_reply_to":"bf659307_8cd6b727","updated":"2018-04-04 19:16:45.000000000","message":"Done","commit_id":"d065997094aee5727a335fb97af7103eb524f37c"}]}
