)]}'
{"nova/network/linux_net.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"af082075cdf0cec17db9dbdb5a3b7efb453f4bb2","unresolved":false,"context_lines":[{"line_number":1542,"context_line":"def remove_ebtables_rules(rules, table\u003d\u0027filter\u0027):"},{"line_number":1543,"context_line":"    for rule in rules:"},{"line_number":1544,"context_line":"        cmd \u003d [\u0027ebtables\u0027, \u0027--concurrent\u0027, \u0027-t\u0027, table, \u0027-D\u0027] + rule.split()"},{"line_number":1545,"context_line":"        _exec_ebtables(*cmd, check_exit_code\u003dFalse, run_as_root\u003dTrue)"},{"line_number":1546,"context_line":""},{"line_number":1547,"context_line":""},{"line_number":1548,"context_line":"def isolate_dhcp_address(interface, address):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_813dc6de","side":"PARENT","line":1545,"range":{"start_line":1545,"start_character":52,"end_line":1545,"end_character":68},"updated":"2019-02-07 14:57:08.000000000","message":"Oh - we lost run_as_root\u003dTrue","commit_id":"3b79f635de4d3495f01ed98d1a8bcfaefe154b0b"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"e47f10c574cbb3edaa5181052727de60b9c55f90","unresolved":false,"context_lines":[{"line_number":1542,"context_line":"def remove_ebtables_rules(rules, table\u003d\u0027filter\u0027):"},{"line_number":1543,"context_line":"    for rule in rules:"},{"line_number":1544,"context_line":"        cmd \u003d [\u0027ebtables\u0027, \u0027--concurrent\u0027, \u0027-t\u0027, table, \u0027-D\u0027] + rule.split()"},{"line_number":1545,"context_line":"        _exec_ebtables(*cmd, check_exit_code\u003dFalse, run_as_root\u003dTrue)"},{"line_number":1546,"context_line":""},{"line_number":1547,"context_line":""},{"line_number":1548,"context_line":"def isolate_dhcp_address(interface, address):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_5f8ec927","side":"PARENT","line":1545,"range":{"start_line":1545,"start_character":52,"end_line":1545,"end_character":68},"in_reply_to":"9fdfeff1_813dc6de","updated":"2019-02-08 00:27:25.000000000","message":"Done","commit_id":"3b79f635de4d3495f01ed98d1a8bcfaefe154b0b"}],"nova/tests/unit/network/test_linux_net.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bce4e69c690d4e6787d64e1d563af79f563896a2","unresolved":false,"context_lines":[{"line_number":1188,"context_line":""},{"line_number":1189,"context_line":"        with mock.patch.object(self.driver, \u0027_execute\u0027,"},{"line_number":1190,"context_line":"                               side_effect\u003dfake_execute):"},{"line_number":1191,"context_line":"            self.driver._exec_ebtables(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":1192,"context_line":"            self.assertEqual(1, len(executes))"},{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"    def _ebtables_race_stderr(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_41acbe34","line":1191,"range":{"start_line":1191,"start_character":47,"end_line":1191,"end_character":53},"updated":"2019-02-07 14:54:26.000000000","message":"this should really be a list (ditto below)","commit_id":"dda0b9d95019ada2ea975fd1d5c434661dad09a7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"e47f10c574cbb3edaa5181052727de60b9c55f90","unresolved":false,"context_lines":[{"line_number":1188,"context_line":""},{"line_number":1189,"context_line":"        with mock.patch.object(self.driver, \u0027_execute\u0027,"},{"line_number":1190,"context_line":"                               side_effect\u003dfake_execute):"},{"line_number":1191,"context_line":"            self.driver._exec_ebtables(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":1192,"context_line":"            self.assertEqual(1, len(executes))"},{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"    def _ebtables_race_stderr(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_bf71f546","line":1191,"range":{"start_line":1191,"start_character":47,"end_line":1191,"end_character":53},"in_reply_to":"9fdfeff1_41acbe34","updated":"2019-02-08 00:27:25.000000000","message":"Done","commit_id":"dda0b9d95019ada2ea975fd1d5c434661dad09a7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"404e1aa8f30f05b082f57b9358ad80ab07745b90","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"                mock.patch.object(self.driver, \u0027_execute\u0027,"},{"line_number":1237,"context_line":"                              side_effect\u003dfake_execute):"},{"line_number":1238,"context_line":"            self.assertRaises(processutils.ProcessExecutionError,"},{"line_number":1239,"context_line":"                              self.driver._exec_ebtables, \u0027fake\u0027, \u0027fake\u0027)"},{"line_number":1240,"context_line":"            self.assertEqual(1, len(executes))"},{"line_number":1241,"context_line":""},{"line_number":1242,"context_line":"    def test_exec_ebtables_fail_once(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_8ea02af6","line":1239,"range":{"start_line":1239,"start_character":66,"end_line":1239,"end_character":72},"updated":"2019-02-13 16:55:46.000000000","message":"list","commit_id":"395ba18a913388ea184bfd4ae11eebc7a28471a8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"404e1aa8f30f05b082f57b9358ad80ab07745b90","unresolved":false,"context_lines":[{"line_number":1256,"context_line":"        with mock.patch.object(time, \u0027sleep\u0027, side_effect\u003dfake_sleep), \\"},{"line_number":1257,"context_line":"                mock.patch.object(self.driver, \u0027_execute\u0027,"},{"line_number":1258,"context_line":"                                  side_effect\u003dfake_execute):"},{"line_number":1259,"context_line":"            self.driver._exec_ebtables(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":1260,"context_line":"            self.assertEqual(2, len(executes))"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"    @mock.patch(\u0027os.path.exists\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_2ea1fef7","line":1259,"range":{"start_line":1259,"start_character":47,"end_line":1259,"end_character":54},"updated":"2019-02-13 16:55:46.000000000","message":"list","commit_id":"395ba18a913388ea184bfd4ae11eebc7a28471a8"}]}
