)]}'
{"neutron/db/l3_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8c51c57fb92556d9d8ad4ded93500b4cbb4bed17","unresolved":true,"context_lines":[{"line_number":517,"context_line":"        registry.publish(resources.ROUTER, events.BEFORE_DELETE, self,"},{"line_number":518,"context_line":"                         payload\u003devents.DBEventPayload("},{"line_number":519,"context_line":"                             context, resource_id\u003did))"},{"line_number":520,"context_line":"        # TODO(nati) Refactor here when we have router insertion model"},{"line_number":521,"context_line":"        router \u003d self._ensure_router_not_in_use(context, id)"},{"line_number":522,"context_line":"        original \u003d self._make_router_dict(router)"},{"line_number":523,"context_line":"        self._delete_current_gw_port(context, id, router, None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"f6712622_69361b06","line":520,"updated":"2021-02-10 16:37:02.000000000","message":"Executing this code in several transaction could lead to a race condition if the router is updated concurrently. This is my main concern here. Nonetheless, the bug report is valid and we need to refactor this code.","commit_id":"e368e8c0b85a1751fff712d4b46aaca66c092d99"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8c51c57fb92556d9d8ad4ded93500b4cbb4bed17","unresolved":true,"context_lines":[{"line_number":518,"context_line":"                         payload\u003devents.DBEventPayload("},{"line_number":519,"context_line":"                             context, resource_id\u003did))"},{"line_number":520,"context_line":"        # TODO(nati) Refactor here when we have router insertion model"},{"line_number":521,"context_line":"        router \u003d self._ensure_router_not_in_use(context, id)"},{"line_number":522,"context_line":"        original \u003d self._make_router_dict(router)"},{"line_number":523,"context_line":"        self._delete_current_gw_port(context, id, router, None)"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ae8d8322_6e99f6fd","line":521,"updated":"2021-02-10 16:37:02.000000000","message":"L521-522 should be in a read context.","commit_id":"e368e8c0b85a1751fff712d4b46aaca66c092d99"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1924be94cb9c60ca8969452a2f7fda6f0a220dfe","unresolved":false,"context_lines":[{"line_number":518,"context_line":"                         payload\u003devents.DBEventPayload("},{"line_number":519,"context_line":"                             context, resource_id\u003did))"},{"line_number":520,"context_line":"        # TODO(nati) Refactor here when we have router insertion model"},{"line_number":521,"context_line":"        router \u003d self._ensure_router_not_in_use(context, id)"},{"line_number":522,"context_line":"        original \u003d self._make_router_dict(router)"},{"line_number":523,"context_line":"        self._delete_current_gw_port(context, id, router, None)"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"d83180b4_301cd100","line":521,"in_reply_to":"ae8d8322_6e99f6fd","updated":"2021-02-11 05:06:18.000000000","message":"Done","commit_id":"e368e8c0b85a1751fff712d4b46aaca66c092d99"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6ab5083f09ca4ee090c0bd5ffc4d8bb0bec2f395","unresolved":true,"context_lines":[{"line_number":517,"context_line":"        registry.publish(resources.ROUTER, events.BEFORE_DELETE, self,"},{"line_number":518,"context_line":"                         payload\u003devents.DBEventPayload("},{"line_number":519,"context_line":"                             context, resource_id\u003did))"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        # TODO(nati) Refactor here when we have router insertion model"},{"line_number":522,"context_line":"        with db_api.CONTEXT_READER.using(context):"},{"line_number":523,"context_line":"            router \u003d self._ensure_router_not_in_use(context, id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"d4da234e_bc01ad5d","line":520,"updated":"2021-02-16 08:37:18.000000000","message":"nit: useless line break","commit_id":"3c409561664ff33f2ececb78c5c852458525ba36"}]}
