)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"02e0401e9562b03dc266d6cfccdcbaab3b49f740","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003ci@liuyulong.me\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-14 00:41:30 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix miss using _dvr_to_src_mac_table_id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A simple dvr router admin-state down action can cause the"},{"line_number":10,"context_line":"\"TypeError: \u0027int\u0027 object is not iterable\" in snat node."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_6e4270ad","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":14},"updated":"2019-06-13 17:58:23.000000000","message":"nit: mis-use of","commit_id":"9760e00e94e2d78cb5acef80469e2f0c8a803585"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_int.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a030c8f33d730d123eceef9674d9c160d1f93e56","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        table_id \u003d self._dvr_to_src_mac_table_id(network_type)"},{"line_number":207,"context_line":"        (_dp, ofp, ofpp) \u003d self._get_dp()"},{"line_number":208,"context_line":"        match \u003d self._arp_dvr_dst_mac_match(ofp, ofpp, vlan_tag, dvr_mac)"},{"line_number":209,"context_line":"        for table in table_id:"},{"line_number":210,"context_line":"            self.uninstall_flows("},{"line_number":211,"context_line":"                strict\u003dTrue, priority\u003d5, table_id\u003dtable, match\u003dmatch)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_f3b3a9e7","side":"PARENT","line":209,"range":{"start_line":209,"start_character":6,"end_line":209,"end_character":30},"updated":"2019-06-13 16:49:05.000000000","message":"Introduced by this:\nhttps://review.opendev.org/#/c/651905/12/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_int.py@209","commit_id":"8b0f4495f9be1329a59df3f404f628da03e36963"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"126b533d7f7ed3e822371f2de6dcd6e868c3144a","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        table_id \u003d self._dvr_to_src_mac_table_id(network_type)"},{"line_number":207,"context_line":"        (_dp, ofp, ofpp) \u003d self._get_dp()"},{"line_number":208,"context_line":"        match \u003d self._arp_dvr_dst_mac_match(ofp, ofpp, vlan_tag, dvr_mac)"},{"line_number":209,"context_line":"        for table in table_id:"},{"line_number":210,"context_line":"            self.uninstall_flows("},{"line_number":211,"context_line":"                strict\u003dTrue, priority\u003d5, table_id\u003dtable, match\u003dmatch)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_81445275","side":"PARENT","line":209,"range":{"start_line":209,"start_character":6,"end_line":209,"end_character":30},"in_reply_to":"9fb8cfa7_0466352b","updated":"2019-06-14 01:13:21.000000000","message":"This is a oversight during the original develop period, there are five methods without unit tests. This function has some calling in the body, others are all one-line function. Yes, a unit test case for this is needed.","commit_id":"8b0f4495f9be1329a59df3f404f628da03e36963"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9a3c01c8f9dd1210d8c368204196f823eee273cb","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        table_id \u003d self._dvr_to_src_mac_table_id(network_type)"},{"line_number":207,"context_line":"        (_dp, ofp, ofpp) \u003d self._get_dp()"},{"line_number":208,"context_line":"        match \u003d self._arp_dvr_dst_mac_match(ofp, ofpp, vlan_tag, dvr_mac)"},{"line_number":209,"context_line":"        for table in table_id:"},{"line_number":210,"context_line":"            self.uninstall_flows("},{"line_number":211,"context_line":"                strict\u003dTrue, priority\u003d5, table_id\u003dtable, match\u003dmatch)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_0466352b","side":"PARENT","line":209,"range":{"start_line":209,"start_character":6,"end_line":209,"end_character":30},"in_reply_to":"9fb8cfa7_f3b3a9e7","updated":"2019-06-13 19:51:48.000000000","message":"how this could happened and not be catched by any of tests? Maybe You could try to add some test(s) to avoid such issue in the future?","commit_id":"8b0f4495f9be1329a59df3f404f628da03e36963"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_int.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9d9bed59c998f06d4c11dfe86a6b75aa18281cf6","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        ]"},{"line_number":473,"context_line":"        self.assertEqual(expected, self.mock.mock_calls)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def _test_delete_dvr_dst_mac_for_arp(self, is_vlan\u003dTrue):"},{"line_number":476,"context_line":"        if is_vlan:"},{"line_number":477,"context_line":"            table \u003d 2"},{"line_number":478,"context_line":"            network_type \u003d \u0027vlan\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_c49a5312","line":475,"range":{"start_line":475,"start_character":47,"end_line":475,"end_character":59},"updated":"2019-06-14 09:31:53.000000000","message":"instead of adding flag here, You can have here \"network_type\" directly","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b440b355e513d47dd52eefe00eda6104f702f8e7","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        ]"},{"line_number":473,"context_line":"        self.assertEqual(expected, self.mock.mock_calls)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def _test_delete_dvr_dst_mac_for_arp(self, is_vlan\u003dTrue):"},{"line_number":476,"context_line":"        if is_vlan:"},{"line_number":477,"context_line":"            table \u003d 2"},{"line_number":478,"context_line":"            network_type \u003d \u0027vlan\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_078b8d67","line":475,"range":{"start_line":475,"start_character":47,"end_line":475,"end_character":59},"in_reply_to":"9fb8cfa7_c49a5312","updated":"2019-06-14 10:02:15.000000000","message":"Done","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9d9bed59c998f06d4c11dfe86a6b75aa18281cf6","unresolved":false,"context_lines":[{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def _test_delete_dvr_dst_mac_for_arp(self, is_vlan\u003dTrue):"},{"line_number":476,"context_line":"        if is_vlan:"},{"line_number":477,"context_line":"            table \u003d 2"},{"line_number":478,"context_line":"            network_type \u003d \u0027vlan\u0027"},{"line_number":479,"context_line":"        else:"},{"line_number":480,"context_line":"            table \u003d 1"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_e4fbd743","line":477,"range":{"start_line":477,"start_character":20,"end_line":477,"end_character":21},"updated":"2019-06-14 09:31:53.000000000","message":"You can use constants.ARP_DVR_MAC_TO_DST_MAC_VLAN here","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b440b355e513d47dd52eefe00eda6104f702f8e7","unresolved":false,"context_lines":[{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def _test_delete_dvr_dst_mac_for_arp(self, is_vlan\u003dTrue):"},{"line_number":476,"context_line":"        if is_vlan:"},{"line_number":477,"context_line":"            table \u003d 2"},{"line_number":478,"context_line":"            network_type \u003d \u0027vlan\u0027"},{"line_number":479,"context_line":"        else:"},{"line_number":480,"context_line":"            table \u003d 1"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_a7eba110","line":477,"range":{"start_line":477,"start_character":20,"end_line":477,"end_character":21},"in_reply_to":"9fb8cfa7_e4fbd743","updated":"2019-06-14 10:02:15.000000000","message":"Done","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9d9bed59c998f06d4c11dfe86a6b75aa18281cf6","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            table \u003d 2"},{"line_number":478,"context_line":"            network_type \u003d \u0027vlan\u0027"},{"line_number":479,"context_line":"        else:"},{"line_number":480,"context_line":"            table \u003d 1"},{"line_number":481,"context_line":"            network_type \u003d \u0027vxlan\u0027"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        vlan_tag \u003d 1111"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_649da708","line":480,"range":{"start_line":480,"start_character":20,"end_line":480,"end_character":21},"updated":"2019-06-14 09:31:53.000000000","message":"You can use constants.ARP_DVR_MAC_TO_DST_MAC here","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b440b355e513d47dd52eefe00eda6104f702f8e7","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            table \u003d 2"},{"line_number":478,"context_line":"            network_type \u003d \u0027vlan\u0027"},{"line_number":479,"context_line":"        else:"},{"line_number":480,"context_line":"            table \u003d 1"},{"line_number":481,"context_line":"            network_type \u003d \u0027vxlan\u0027"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        vlan_tag \u003d 1111"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_c7eed520","line":480,"range":{"start_line":480,"start_character":20,"end_line":480,"end_character":21},"in_reply_to":"9fb8cfa7_649da708","updated":"2019-06-14 10:02:15.000000000","message":"Done","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9d9bed59c998f06d4c11dfe86a6b75aa18281cf6","unresolved":false,"context_lines":[{"line_number":499,"context_line":"                    eth_dst\u003ddvr_mac,"},{"line_number":500,"context_line":"                    vlan_vid\u003dvlan_tag | ofp.OFPVID_PRESENT)),"},{"line_number":501,"context_line":"        ]"},{"line_number":502,"context_line":"        self.assertEqual(expected, self.mock.mock_calls)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    def test_delete_dvr_dst_mac_for_arp_vlan(self):"},{"line_number":505,"context_line":"        self._test_delete_dvr_dst_mac_for_arp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_c4f57358","line":502,"updated":"2019-06-14 09:31:53.000000000","message":"You can use:\n\nself.mock.assert_has_calls(expected)","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b440b355e513d47dd52eefe00eda6104f702f8e7","unresolved":false,"context_lines":[{"line_number":499,"context_line":"                    eth_dst\u003ddvr_mac,"},{"line_number":500,"context_line":"                    vlan_vid\u003dvlan_tag | ofp.OFPVID_PRESENT)),"},{"line_number":501,"context_line":"        ]"},{"line_number":502,"context_line":"        self.assertEqual(expected, self.mock.mock_calls)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    def test_delete_dvr_dst_mac_for_arp_vlan(self):"},{"line_number":505,"context_line":"        self._test_delete_dvr_dst_mac_for_arp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_87f45df2","line":502,"in_reply_to":"9fb8cfa7_c4f57358","updated":"2019-06-14 10:02:15.000000000","message":"Let\u0027s make consistent with all other test cases here.","commit_id":"af7be1bb9987d591225f21b6a5a7cf80ee78fbec"}]}
