)]}'
{"nova/tests/unit/compute/test_resource_tracker.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea6a2075f1628f86eeb8986c9d215852658e5e4a","unresolved":false,"context_lines":[{"line_number":2946,"context_line":"                self.assertEqual(1, len(msg.payload[\u0027metrics\u0027]))"},{"line_number":2947,"context_line":"                # make sure the expected metrics match the actual metrics"},{"line_number":2948,"context_line":"                self.assertEqual(expected_metrics[0],"},{"line_number":2949,"context_line":"                                     msg.payload[\u0027metrics\u0027][0])"},{"line_number":2950,"context_line":"            else:"},{"line_number":2951,"context_line":"                self.assertEqual(payload[p_key], msg.payload[p_key])"},{"line_number":2952,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_3e2e7ca5","line":2949,"range":{"start_line":2949,"start_character":33,"end_line":2949,"end_character":37},"updated":"2018-01-25 19:51:57.000000000","message":"nit: better to remove spaces for the readability.","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"b2ec7018b5e6e93d3bc496162468c11b2690401c","unresolved":false,"context_lines":[{"line_number":2946,"context_line":"                self.assertEqual(1, len(msg.payload[\u0027metrics\u0027]))"},{"line_number":2947,"context_line":"                # make sure the expected metrics match the actual metrics"},{"line_number":2948,"context_line":"                self.assertEqual(expected_metrics[0],"},{"line_number":2949,"context_line":"                                     msg.payload[\u0027metrics\u0027][0])"},{"line_number":2950,"context_line":"            else:"},{"line_number":2951,"context_line":"                self.assertEqual(payload[p_key], msg.payload[p_key])"},{"line_number":2952,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_c3cf787d","line":2949,"range":{"start_line":2949,"start_character":33,"end_line":2949,"end_character":37},"in_reply_to":"5f93b717_3e2e7ca5","updated":"2018-01-26 09:17:36.000000000","message":"Done","commit_id":"232da1a767637774293cbe3b799e8182113376f8"}],"nova/tests/unit/test_json_ref.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea6a2075f1628f86eeb8986c9d215852658e5e4a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":68,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13}},"},{"line_number":69,"context_line":"                             actual)"},{"line_number":70,"context_line":"        mock_open.assert_called_once_with(\u0027some/base/path/another.json\u0027, \u0027r+b\u0027)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_de18b882","line":68,"range":{"start_line":68,"start_character":26,"end_line":68,"end_character":30},"updated":"2018-01-25 19:51:57.000000000","message":"ditto","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"b2ec7018b5e6e93d3bc496162468c11b2690401c","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":68,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13}},"},{"line_number":69,"context_line":"                             actual)"},{"line_number":70,"context_line":"        mock_open.assert_called_once_with(\u0027some/base/path/another.json\u0027, \u0027r+b\u0027)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_03b240e7","line":68,"range":{"start_line":68,"start_character":26,"end_line":68,"end_character":30},"in_reply_to":"5f93b717_de18b882","updated":"2018-01-26 09:17:36.000000000","message":"Done","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea6a2075f1628f86eeb8986c9d215852658e5e4a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":88,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13,"},{"line_number":89,"context_line":"                                      \u0027nesting\u0027:"},{"line_number":90,"context_line":"                                          {\u0027a deep key\u0027: \u0027happiness\u0027}}},"},{"line_number":91,"context_line":"                             actual)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_f9feee03","line":88,"range":{"start_line":88,"start_character":25,"end_line":88,"end_character":30},"updated":"2018-01-25 19:51:57.000000000","message":"ditto","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"b2ec7018b5e6e93d3bc496162468c11b2690401c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":88,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13,"},{"line_number":89,"context_line":"                                      \u0027nesting\u0027:"},{"line_number":90,"context_line":"                                          {\u0027a deep key\u0027: \u0027happiness\u0027}}},"},{"line_number":91,"context_line":"                             actual)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_23b73cd8","line":88,"range":{"start_line":88,"start_character":25,"end_line":88,"end_character":30},"in_reply_to":"5f93b717_f9feee03","updated":"2018-01-26 09:17:36.000000000","message":"Done","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea6a2075f1628f86eeb8986c9d215852658e5e4a","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":109,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13,"},{"line_number":110,"context_line":"                                      \u0027boo\u0027: 0}},"},{"line_number":111,"context_line":"                             actual)"},{"line_number":112,"context_line":"        mock_open.assert_called_once_with(\u0027some/base/path/another.json\u0027, \u0027r+b\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_b9086628","line":109,"range":{"start_line":109,"start_character":26,"end_line":109,"end_character":30},"updated":"2018-01-25 19:51:57.000000000","message":"ditto","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"b2ec7018b5e6e93d3bc496162468c11b2690401c","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":109,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13,"},{"line_number":110,"context_line":"                                      \u0027boo\u0027: 0}},"},{"line_number":111,"context_line":"                             actual)"},{"line_number":112,"context_line":"        mock_open.assert_called_once_with(\u0027some/base/path/another.json\u0027, \u0027r+b\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_c3cbf850","line":109,"range":{"start_line":109,"start_character":26,"end_line":109,"end_character":30},"in_reply_to":"5f93b717_b9086628","updated":"2018-01-26 09:17:36.000000000","message":"Done","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea6a2075f1628f86eeb8986c9d215852658e5e4a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":129,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13,"},{"line_number":130,"context_line":"                                      \u0027boo\u0027: {\u0027a\u0027: 1,"},{"line_number":131,"context_line":"                                              \u0027b\u0027: 3,"},{"line_number":132,"context_line":"                                              \u0027c\u0027: 13}}},"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_d90d3238","line":129,"range":{"start_line":129,"start_character":26,"end_line":129,"end_character":30},"updated":"2018-01-25 19:51:57.000000000","message":"ditto","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"b2ec7018b5e6e93d3bc496162468c11b2690401c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            \u0027some/base/path/\u0027)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        self.assertEqual({\u0027foo\u0027: 1,"},{"line_number":129,"context_line":"                              \u0027bar\u0027: {\u0027baz\u0027: 13,"},{"line_number":130,"context_line":"                                      \u0027boo\u0027: {\u0027a\u0027: 1,"},{"line_number":131,"context_line":"                                              \u0027b\u0027: 3,"},{"line_number":132,"context_line":"                                              \u0027c\u0027: 13}}},"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_83c5f03e","line":129,"range":{"start_line":129,"start_character":26,"end_line":129,"end_character":30},"in_reply_to":"5f93b717_d90d3238","updated":"2018-01-26 09:17:36.000000000","message":"Done","commit_id":"232da1a767637774293cbe3b799e8182113376f8"}],"nova/tests/unit/virt/libvirt/volume/test_mount.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea6a2075f1628f86eeb8986c9d215852658e5e4a","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                         sorted(m.mountpoints.keys()))"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        self.assertEqual(set([(\u0027vola1\u0027, uuids.instance_a),"},{"line_number":223,"context_line":"                                 (\u0027vola2\u0027, uuids.instance_b)]),"},{"line_number":224,"context_line":"                            m.mountpoints[mountpoint_a].attachments)"},{"line_number":225,"context_line":"        self.assertEqual(set([(\u0027volb1\u0027, uuids.instance_a),"},{"line_number":226,"context_line":"                                 (\u0027volb2\u0027, uuids.instance_b)]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_990faa2d","line":223,"range":{"start_line":223,"start_character":30,"end_line":223,"end_character":33},"updated":"2018-01-25 19:51:57.000000000","message":"ditto","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"b2ec7018b5e6e93d3bc496162468c11b2690401c","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                         sorted(m.mountpoints.keys()))"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        self.assertEqual(set([(\u0027vola1\u0027, uuids.instance_a),"},{"line_number":223,"context_line":"                                 (\u0027vola2\u0027, uuids.instance_b)]),"},{"line_number":224,"context_line":"                            m.mountpoints[mountpoint_a].attachments)"},{"line_number":225,"context_line":"        self.assertEqual(set([(\u0027volb1\u0027, uuids.instance_a),"},{"line_number":226,"context_line":"                                 (\u0027volb2\u0027, uuids.instance_b)]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_03e7a0e6","line":223,"range":{"start_line":223,"start_character":30,"end_line":223,"end_character":33},"in_reply_to":"5f93b717_990faa2d","updated":"2018-01-26 09:17:36.000000000","message":"Done","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ea6a2075f1628f86eeb8986c9d215852658e5e4a","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                                 (\u0027vola2\u0027, uuids.instance_b)]),"},{"line_number":224,"context_line":"                            m.mountpoints[mountpoint_a].attachments)"},{"line_number":225,"context_line":"        self.assertEqual(set([(\u0027volb1\u0027, uuids.instance_a),"},{"line_number":226,"context_line":"                                 (\u0027volb2\u0027, uuids.instance_b)]),"},{"line_number":227,"context_line":"                            m.mountpoints[mountpoint_b].attachments)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_59192277","line":226,"range":{"start_line":226,"start_character":30,"end_line":226,"end_character":33},"updated":"2018-01-25 19:51:57.000000000","message":"ditto","commit_id":"232da1a767637774293cbe3b799e8182113376f8"},{"author":{"_account_id":19944,"name":"Chen Hanxiao","email":"chen_han_xiao@126.com","username":"chenhanxiao"},"change_message_id":"b2ec7018b5e6e93d3bc496162468c11b2690401c","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                                 (\u0027vola2\u0027, uuids.instance_b)]),"},{"line_number":224,"context_line":"                            m.mountpoints[mountpoint_a].attachments)"},{"line_number":225,"context_line":"        self.assertEqual(set([(\u0027volb1\u0027, uuids.instance_a),"},{"line_number":226,"context_line":"                                 (\u0027volb2\u0027, uuids.instance_b)]),"},{"line_number":227,"context_line":"                            m.mountpoints[mountpoint_b].attachments)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_23ec1cc6","line":226,"range":{"start_line":226,"start_character":30,"end_line":226,"end_character":33},"in_reply_to":"5f93b717_59192277","updated":"2018-01-26 09:17:36.000000000","message":"Done","commit_id":"232da1a767637774293cbe3b799e8182113376f8"}]}
