)]}'
{"neutron/db/l3_db.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"453bdf0a33b1fde08896743c427ae511d1422420","unresolved":false,"context_lines":[{"line_number":499,"context_line":"                            events.AFTER_CREATE,"},{"line_number":500,"context_line":"                            self._create_gw_port,"},{"line_number":501,"context_line":"                            context\u003dcontext,"},{"line_number":502,"context_line":"                            gw_ips\u003dgw_ips,"},{"line_number":503,"context_line":"                            network_id\u003dnew_network_id,"},{"line_number":504,"context_line":"                            router_id\u003drouter_id)"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_06c1e32f","line":502,"range":{"start_line":502,"start_character":28,"end_line":502,"end_character":42},"updated":"2018-10-09 01:45:55.000000000","message":"Please confirm this notification was not consumed by any other sub projects since they need such list:\next_ips \u003d [{\"subnet_id\": \"966eff11-909d-4b6c-8d5f-4505e8a8c15f\",\n            \"ip_address\": \"192.168.1.200\"},\n           {\"subnet_id\": \"f2dee576-7535-40ee-a5ba-d5dae8e1f600\",\n            \"ip_address\": \"2001:db8::d\"}]\n\nOtherwise maybe this fix should be done only in the neutron_dynamic_routing.","commit_id":"22aba9ddb2f5b9725066a69ae86671ab541c338b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"56d341ee406179c218848826f0134b4baf1d63ef","unresolved":false,"context_lines":[{"line_number":499,"context_line":"                            events.AFTER_CREATE,"},{"line_number":500,"context_line":"                            self._create_gw_port,"},{"line_number":501,"context_line":"                            context\u003dcontext,"},{"line_number":502,"context_line":"                            gw_ips\u003dgw_ips,"},{"line_number":503,"context_line":"                            network_id\u003dnew_network_id,"},{"line_number":504,"context_line":"                            router_id\u003drouter_id)"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_e3d36062","line":502,"range":{"start_line":502,"start_character":28,"end_line":502,"end_character":42},"in_reply_to":"3f79a3b5_06c1e32f","updated":"2018-10-09 21:00:50.000000000","message":"I didn\u0027t see anyone that consumed this using codesearch, the vmware-nsx code over-rides it and never looks at this field anyways.  You should also update the tests to actually verify the fields since it just checks with mock.ANY.","commit_id":"22aba9ddb2f5b9725066a69ae86671ab541c338b"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"4410d329f98d8b359994054aa0ee33edcdc371d2","unresolved":false,"context_lines":[{"line_number":499,"context_line":"                            events.AFTER_CREATE,"},{"line_number":500,"context_line":"                            self._create_gw_port,"},{"line_number":501,"context_line":"                            context\u003dcontext,"},{"line_number":502,"context_line":"                            gw_ips\u003dgw_ips,"},{"line_number":503,"context_line":"                            network_id\u003dnew_network_id,"},{"line_number":504,"context_line":"                            router_id\u003drouter_id)"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_598a5c1e","line":502,"range":{"start_line":502,"start_character":28,"end_line":502,"end_character":34},"updated":"2018-10-19 22:01:02.000000000","message":"IMHO, we should change the keyword to \u0027gateway_ips\u0027 as well for consistency, but I feel that is optional.","commit_id":"b4a74bf0dd2b841401259953da106a09bb2c327e"}],"neutron/tests/unit/db/test_l3_db.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"9f22b8c367739779cccf0ccd3e56bce53b556478","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                ext_ips\u003dext_ips)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"            expected_gw_ips \u003d [\u0027ip\u0027]"},{"line_number":307,"context_line":"            expected_network_id \u003d \u0027net-id\u0027"},{"line_number":308,"context_line":"            expected_router_id \u003d \u0027123\u0027"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"            self.assertTrue(cfdrs.called)"},{"line_number":311,"context_line":"            self.assertTrue(crgp.called)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_5f6c3c32","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":38},"updated":"2018-10-11 11:48:27.000000000","message":"nit: you can directly use the upper definitions. So these are redundant.","commit_id":"b43a4b6d2bb384a6f0cfb1076cab053b2b74a093"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3cf5f73d18119b4d1bd3fac46e630787c14ac0ea","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                ext_ips\u003dext_ips)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"            expected_gw_ips \u003d [\u0027ip\u0027]"},{"line_number":307,"context_line":"            expected_network_id \u003d new_network_id"},{"line_number":308,"context_line":"            expected_router_id \u003d router_id"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"            self.assertTrue(cfdrs.called)"},{"line_number":311,"context_line":"            self.assertTrue(crgp.called)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_4e0b1b7b","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":42},"updated":"2018-10-12 05:51:51.000000000","message":"Sorry, I mean you can remove these two lines, and directly use the upper definations in line 315 and 316.","commit_id":"3a1b71a36ceb8ecfd8ff26e735c82289af95fe12"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2967675c4c5fee009ac66f573af69035a43a0583","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                resources.ROUTER_INTERFACE, events.BEFORE_CREATE, self.db,"},{"line_number":282,"context_line":"                **kwargs)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def test__create_gw_port(self):"},{"line_number":285,"context_line":"        router_id \u003d \u0027123\u0027"},{"line_number":286,"context_line":"        router \u003d l3_models.Router(id\u003d\u0027123\u0027)"},{"line_number":287,"context_line":"        new_network_id \u003d \u0027net-id\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_23eb4d11","line":284,"updated":"2018-10-12 13:16:00.000000000","message":"Part of the reason this issue wasn\u0027t caught was because the existing test test_router_add_gateway_notifications() mocked everything out.  That test duplicates all of this from what I can tell.","commit_id":"fe4b79f995cd8bed9b0193ca1f5ac6d08327223a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2967675c4c5fee009ac66f573af69035a43a0583","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def test__create_gw_port(self):"},{"line_number":285,"context_line":"        router_id \u003d \u0027123\u0027"},{"line_number":286,"context_line":"        router \u003d l3_models.Router(id\u003d\u0027123\u0027)"},{"line_number":287,"context_line":"        new_network_id \u003d \u0027net-id\u0027"},{"line_number":288,"context_line":"        ext_ips \u003d [{\u0027subnet_id\u0027: \u0027subnet-id\u0027, \u0027ip_address\u0027: \u0027ip\u0027}]"},{"line_number":289,"context_line":"        plugin \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_239d8db9","line":286,"range":{"start_line":286,"start_character":37,"end_line":286,"end_character":42},"updated":"2018-10-12 13:16:00.000000000","message":"should use router_id here","commit_id":"fe4b79f995cd8bed9b0193ca1f5ac6d08327223a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2967675c4c5fee009ac66f573af69035a43a0583","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        router_id \u003d \u0027123\u0027"},{"line_number":286,"context_line":"        router \u003d l3_models.Router(id\u003d\u0027123\u0027)"},{"line_number":287,"context_line":"        new_network_id \u003d \u0027net-id\u0027"},{"line_number":288,"context_line":"        ext_ips \u003d [{\u0027subnet_id\u0027: \u0027subnet-id\u0027, \u0027ip_address\u0027: \u0027ip\u0027}]"},{"line_number":289,"context_line":"        plugin \u003d mock.Mock()"},{"line_number":290,"context_line":"        context \u003d mock.Mock()"},{"line_number":291,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_6380654a","line":288,"range":{"start_line":288,"start_character":61,"end_line":288,"end_character":62},"updated":"2018-10-12 13:16:00.000000000","message":"should use an IP address, like 1.1.1.1 as above","commit_id":"fe4b79f995cd8bed9b0193ca1f5ac6d08327223a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2967675c4c5fee009ac66f573af69035a43a0583","unresolved":false,"context_lines":[{"line_number":301,"context_line":""},{"line_number":302,"context_line":"            self.db._create_gw_port(context, router_id\u003drouter_id,"},{"line_number":303,"context_line":"                                router\u003drouter, new_network_id\u003dnew_network_id,"},{"line_number":304,"context_line":"                                ext_ips\u003dext_ips)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"            expected_gw_ips \u003d [\u0027ip\u0027]"},{"line_number":307,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_a3de7d68","line":304,"updated":"2018-10-12 13:16:00.000000000","message":"nit: indentation should be to \u0027context\u0027","commit_id":"fe4b79f995cd8bed9b0193ca1f5ac6d08327223a"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"5e2807d623d0d09c88eeaa512ec4c4639400d739","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.db import l3_db"},{"line_number":31,"context_line":"from neutron.db.models import l3 as l3_models"},{"line_number":32,"context_line":"from neutron.objects import router as l3_obj"},{"line_number":33,"context_line":"from neutron.objects.base import NeutronDbObject"},{"line_number":34,"context_line":"from neutron.tests import base"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_dc131601","line":33,"range":{"start_line":33,"start_character":21,"end_line":33,"end_character":25},"updated":"2018-10-29 15:42:02.000000000","message":"This import is out of order (caught by the pep8 test).","commit_id":"5e1d99de1366c4ba1590f55fd6a900542fa834d5"}]}
