)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"650ec85de42c7be6f57d7f887630c12fbe550bb8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Qin Zhao \u003czhaoqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-11-18 23:15:47 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_856d4dcf","line":7,"updated":"2014-11-18 22:40:59.000000000","message":"Well, please provide the problem in the title like \"Fix exception handling...\"","commit_id":"eeaa09591d2690e75c03c4d52f84cd9d2a51d0c2"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"d630a54d6576a5bf9e1e0125a9dd2a72683f9f58","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Qin Zhao \u003czhaoqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-11-18 23:15:47 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_8f6c830a","line":7,"in_reply_to":"5a890539_856d4dcf","updated":"2014-11-19 03:52:42.000000000","message":"Done","commit_id":"eeaa09591d2690e75c03c4d52f84cd9d2a51d0c2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8018252708b3288fa658098164ecdc6a252ce9c5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I8a99a4ceb53c89038e8b292a15ad9fd20daa4233"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_95faed72","line":9,"updated":"2014-11-18 16:46:53.000000000","message":"This is just a restatement of the commit title.  I\u0027d prefer a little more text here: \"When … occurs, we attempt to raise an exception, but a misspelling prevents the correct exception from being raised.  This corrects the misspelling.\"","commit_id":"eeaa09591d2690e75c03c4d52f84cd9d2a51d0c2"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"d630a54d6576a5bf9e1e0125a9dd2a72683f9f58","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I8a99a4ceb53c89038e8b292a15ad9fd20daa4233"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_ef7267e2","line":9,"in_reply_to":"5a890539_95faed72","updated":"2014-11-19 03:52:42.000000000","message":"Done. Thanks!","commit_id":"eeaa09591d2690e75c03c4d52f84cd9d2a51d0c2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"650ec85de42c7be6f57d7f887630c12fbe550bb8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I8a99a4ceb53c89038e8b292a15ad9fd20daa4233"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_a55b292d","line":10,"updated":"2014-11-18 22:40:59.000000000","message":"IMHO, you should also file a bug for proper tracking","commit_id":"eeaa09591d2690e75c03c4d52f84cd9d2a51d0c2"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"d630a54d6576a5bf9e1e0125a9dd2a72683f9f58","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Correct a wrong variable name in resource_tracker.py"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I8a99a4ceb53c89038e8b292a15ad9fd20daa4233"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_af713fe2","line":10,"in_reply_to":"5a890539_a55b292d","updated":"2014-11-19 03:52:42.000000000","message":"Done","commit_id":"eeaa09591d2690e75c03c4d52f84cd9d2a51d0c2"}],"nova/tests/unit/compute/test_resource_tracker.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cbd9c3dacf150a5249351e64960820b7aa603790","unresolved":false,"context_lines":[{"line_number":1376,"context_line":"                               side_effect \u003d Exception()):"},{"line_number":1377,"context_line":"            metrics \u003d self.tracker._get_host_metrics(self.context,"},{"line_number":1378,"context_line":"                                                     self.node_name)"},{"line_number":1379,"context_line":"            self.assertTrue(mock_LOG_warn.called)"},{"line_number":1380,"context_line":"            self.assertEqual(len(metrics), 0)"},{"line_number":1381,"context_line":""},{"line_number":1382,"context_line":"    def test_get_host_metrics(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_b3d0c5ca","line":1379,"updated":"2014-11-19 11:02:01.000000000","message":"here the check doesn\u0027t test the previous behaviour, I would rather make sure that monitor is part of the string","commit_id":"4d96d2164a6eb557ee43a190d9bf6cd6030239ad"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"3bb12945679deffc8f1286f5d4deb348253d6690","unresolved":false,"context_lines":[{"line_number":1376,"context_line":"                               side_effect \u003d Exception()):"},{"line_number":1377,"context_line":"            metrics \u003d self.tracker._get_host_metrics(self.context,"},{"line_number":1378,"context_line":"                                                     self.node_name)"},{"line_number":1379,"context_line":"            self.assertTrue(mock_LOG_warn.called)"},{"line_number":1380,"context_line":"            self.assertEqual(len(metrics), 0)"},{"line_number":1381,"context_line":""},{"line_number":1382,"context_line":"    def test_get_host_metrics(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_4b243dc6","line":1379,"in_reply_to":"5a890539_b3d0c5ca","updated":"2014-11-19 15:07:06.000000000","message":"Let me use called_once_with() to ensure the second parameter is monitor.","commit_id":"4d96d2164a6eb557ee43a190d9bf6cd6030239ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cbd9c3dacf150a5249351e64960820b7aa603790","unresolved":false,"context_lines":[{"line_number":1377,"context_line":"            metrics \u003d self.tracker._get_host_metrics(self.context,"},{"line_number":1378,"context_line":"                                                     self.node_name)"},{"line_number":1379,"context_line":"            self.assertTrue(mock_LOG_warn.called)"},{"line_number":1380,"context_line":"            self.assertEqual(len(metrics), 0)"},{"line_number":1381,"context_line":""},{"line_number":1382,"context_line":"    def test_get_host_metrics(self):"},{"line_number":1383,"context_line":"        self.flags(compute_monitors\u003d[\u0027FakeMonitorClass1\u0027, \u0027FakeMonitorClass2\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_135a7950","line":1380,"updated":"2014-11-19 11:02:01.000000000","message":"nit : the usual pattern for unittest is \n\n  self.assertEqual(expected, observed)","commit_id":"4d96d2164a6eb557ee43a190d9bf6cd6030239ad"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"3bb12945679deffc8f1286f5d4deb348253d6690","unresolved":false,"context_lines":[{"line_number":1377,"context_line":"            metrics \u003d self.tracker._get_host_metrics(self.context,"},{"line_number":1378,"context_line":"                                                     self.node_name)"},{"line_number":1379,"context_line":"            self.assertTrue(mock_LOG_warn.called)"},{"line_number":1380,"context_line":"            self.assertEqual(len(metrics), 0)"},{"line_number":1381,"context_line":""},{"line_number":1382,"context_line":"    def test_get_host_metrics(self):"},{"line_number":1383,"context_line":"        self.flags(compute_monitors\u003d[\u0027FakeMonitorClass1\u0027, \u0027FakeMonitorClass2\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_ab2be192","line":1380,"in_reply_to":"5a890539_135a7950","updated":"2014-11-19 15:07:06.000000000","message":"Done.","commit_id":"4d96d2164a6eb557ee43a190d9bf6cd6030239ad"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"be0bee753140236c4df48d084c38a09fb4598a0c","unresolved":false,"context_lines":[{"line_number":1373,"context_line":"        class1 \u003d test_monitors.FakeMonitorClass1(self.tracker)"},{"line_number":1374,"context_line":"        self.tracker.monitors \u003d [class1]"},{"line_number":1375,"context_line":"        with mock.patch.object(class1, \u0027get_metrics\u0027,"},{"line_number":1376,"context_line":"                               side_effect \u003d Exception()):"},{"line_number":1377,"context_line":"            metrics \u003d self.tracker._get_host_metrics(self.context,"},{"line_number":1378,"context_line":"                                                     self.node_name)"},{"line_number":1379,"context_line":"            mock_LOG_warn.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_c24d66c6","line":1376,"updated":"2014-11-19 19:29:50.000000000","message":"I wouldn\u0027t have expected pep8 to accept this; for keyword arguments like side_effect here, there shouldn\u0027t be spaces around the \u0027\u003d\u0027.  Thus, this should be spelled:\n\n    with mock.patch.object(class1, \u0027get_metrics\u0027,\n                           side_effect\u003dException()):\n\nAlso, Exception is too generic here; you should use test.TestingException.","commit_id":"866bc8a8918c82c052aa0093e753c1bf82eb391f"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"b3c10beeab4843d6d3d17337ddebec6289518629","unresolved":false,"context_lines":[{"line_number":1373,"context_line":"        class1 \u003d test_monitors.FakeMonitorClass1(self.tracker)"},{"line_number":1374,"context_line":"        self.tracker.monitors \u003d [class1]"},{"line_number":1375,"context_line":"        with mock.patch.object(class1, \u0027get_metrics\u0027,"},{"line_number":1376,"context_line":"                               side_effect \u003d Exception()):"},{"line_number":1377,"context_line":"            metrics \u003d self.tracker._get_host_metrics(self.context,"},{"line_number":1378,"context_line":"                                                     self.node_name)"},{"line_number":1379,"context_line":"            mock_LOG_warn.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_1cf34a0b","line":1376,"in_reply_to":"5a890539_c24d66c6","updated":"2014-11-20 01:39:24.000000000","message":"Done. Let me check if we can add this checking to pep8.","commit_id":"866bc8a8918c82c052aa0093e753c1bf82eb391f"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"049f32fcdede0a147a4ddd8f77abada033147aac","unresolved":false,"context_lines":[{"line_number":1368,"context_line":"        self.assertTrue(len(metrics) \u003e 0)"},{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"    @mock.patch.object(resource_tracker.LOG, \u0027warn\u0027)"},{"line_number":1371,"context_line":"    def test_get_host_metrics_exception(self, mock_LOG_warn):"},{"line_number":1372,"context_line":"        self.flags(compute_monitors\u003d[\u0027FakeMontorClass1\u0027])"},{"line_number":1373,"context_line":"        class1 \u003d test_monitors.FakeMonitorClass1(self.tracker)"},{"line_number":1374,"context_line":"        self.tracker.monitors \u003d [class1]"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_ffa1b9f8","line":1371,"updated":"2014-11-22 23:19:51.000000000","message":"Note: Unit tests will fail if the logger raises an exception, so this went un-noticed because no unit tests hit this code path.","commit_id":"e09880dcd0f7ae766cae170c5b30fbabbe85eac3"}]}
