)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"aa4cff174630d5d14e4f590ce965d5460fbc6bd6","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003ci@liuyulong.me\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-02-08 15:33:08 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor marionette external-network update to router gateway"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since external network update or new subnet created on external"},{"line_number":10,"context_line":"network, the related routers have to do some update actions."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"0da67f2c_27258c9a","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":19},"updated":"2024-02-08 19:33:49.000000000","message":"I\u0027m not sure if you meant to use a different word here, since this means \"a puppet moved by attached strings or wires\". I don\u0027t think you need the word at all.","commit_id":"9a60b02365c1e544f9b82a945c72b60383aefc86"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8377a3691083acd0b41c3a3a97b1096674871ed6","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003ci@liuyulong.me\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-02-08 15:33:08 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor marionette external-network update to router gateway"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since external network update or new subnet created on external"},{"line_number":10,"context_line":"network, the related routers have to do some update actions."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a9353c3_ac7faafa","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":19},"in_reply_to":"0da67f2c_27258c9a","updated":"2024-02-09 03:21:46.000000000","message":"haha, nothing specil, used to describe the interactive relationship between these two plugins metaphorically.","commit_id":"9a60b02365c1e544f9b82a945c72b60383aefc86"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5c6f2096499814a1eb8182486c2a7cf51326b0e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"acfd617c_aed4460e","updated":"2024-07-02 09:42:01.000000000","message":"Please check the comment in ``neutron/db/db_base_plugin_v2.py``, this check is not working as expected.\n\nThe order of the parent patch 901225 and this one should be the opposite: you should first refactor the external network subnet behaviour, adding the method ``update_router_gw_ports`` to ``L3_NAT_db_mixin``.\n\nThen in 901225, on top of this one, should implement the \"service_type\" check and override the ``update_router_gw_ports`` in ``OVNL3RouterPlugin``, that inherits ``L3_NAT_db_mixin``","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"31cb900f9159b78ca1f725e4403fcb51d5026e39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2748c842_20c375d9","updated":"2024-05-29 01:36:50.000000000","message":"So what about the former relation patch:\nhttps://review.opendev.org/c/openstack/neutron/+/901225/6","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"6c87748f15059a2d999edca3ad8b62556ff48d6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0fcd2229_91e8bce0","updated":"2024-02-18 01:05:47.000000000","message":"recheck","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6953f30d42a10b9d6e631831f6b8db28c8a5965f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a9aded8e_01e958c5","updated":"2024-05-27 08:00:22.000000000","message":"thanks, looks like a good refactoring","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"6b68216f7bf60336c8793624d7e17f35cca138c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8fba52aa_89391c01","in_reply_to":"acfd617c_aed4460e","updated":"2024-07-02 12:39:16.000000000","message":"Thank you Rodolfo. Please see my inline reply.\n\nRegarding to the order of the patches, I did not see too much differences for reorder. Because the final code will be just same. And actullay this refactor is the extra work for the patch of 901225. OpenStack users need that fix first. But we blocked at the refactor work now.","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6149d92f2c436ca4b580473ee6e4ea94ac6543ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5cbe4546_d234007c","updated":"2024-07-09 11:19:16.000000000","message":"As commented on the parent patch, the refactor should be first to make it easier but I can live with it as it is now","commit_id":"9a27e4e4bb689aa9e77d404c6879c96d3d569ed3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d13cfb981ed856b96d5f5d047ab9b60052480db4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2a5440e4_3185c85c","updated":"2024-07-02 13:08:05.000000000","message":"Same as with the parent patch, I can\u0027t +2 it as I don\u0027t agree with the implementation order.","commit_id":"9a27e4e4bb689aa9e77d404c6879c96d3d569ed3"}],"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5c6f2096499814a1eb8182486c2a7cf51326b0e2","unresolved":true,"context_lines":[{"line_number":800,"context_line":"    def _update_router_gw_ports(self, context, network, subnet):"},{"line_number":801,"context_line":"        l3plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":802,"context_line":"        if l3plugin:"},{"line_number":803,"context_line":"            if hasattr(l3plugin, \"update_router_gw_ports\"):"},{"line_number":804,"context_line":"                l3plugin.update_router_gw_ports(context, network, subnet)"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3221cd34_5560a916","line":803,"range":{"start_line":803,"start_character":12,"end_line":803,"end_character":59},"updated":"2024-07-02 09:42:01.000000000","message":"``update_router_gw_ports`` is implemented in ``L3_NAT_db_mixin``. ``OVNL3RouterPlugin`` is inheriting from this base class. This check will be true for the L3 router and the OVN router.","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f583c46cc1a94d1fafa9b4fcf3d86f977c576501","unresolved":true,"context_lines":[{"line_number":800,"context_line":"    def _update_router_gw_ports(self, context, network, subnet):"},{"line_number":801,"context_line":"        l3plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":802,"context_line":"        if l3plugin:"},{"line_number":803,"context_line":"            if hasattr(l3plugin, \"update_router_gw_ports\"):"},{"line_number":804,"context_line":"                l3plugin.update_router_gw_ports(context, network, subnet)"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":2,"id":"b89c1ba5_494502e7","line":803,"updated":"2024-02-26 23:54:29.000000000","message":"nit: I guess this could have all been on the above line","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"6b68216f7bf60336c8793624d7e17f35cca138c3","unresolved":true,"context_lines":[{"line_number":800,"context_line":"    def _update_router_gw_ports(self, context, network, subnet):"},{"line_number":801,"context_line":"        l3plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":802,"context_line":"        if l3plugin:"},{"line_number":803,"context_line":"            if hasattr(l3plugin, \"update_router_gw_ports\"):"},{"line_number":804,"context_line":"                l3plugin.update_router_gw_ports(context, network, subnet)"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":2,"id":"6a211ad3_aabf5c16","line":803,"range":{"start_line":803,"start_character":12,"end_line":803,"end_character":59},"in_reply_to":"3221cd34_5560a916","updated":"2024-07-02 12:39:16.000000000","message":"Just in case some L3 plugin does not have this method.","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"e7702e8f3752bbb401ceb2f552b067d8c676be1e","unresolved":false,"context_lines":[{"line_number":800,"context_line":"    def _update_router_gw_ports(self, context, network, subnet):"},{"line_number":801,"context_line":"        l3plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":802,"context_line":"        if l3plugin:"},{"line_number":803,"context_line":"            if hasattr(l3plugin, \"update_router_gw_ports\"):"},{"line_number":804,"context_line":"                l3plugin.update_router_gw_ports(context, network, subnet)"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":2,"id":"db11b79e_f3a310e0","line":803,"in_reply_to":"b89c1ba5_494502e7","updated":"2024-07-02 13:00:07.000000000","message":"Done","commit_id":"7aad9f9e2c1a08e052ce9c41aa6d897040b4f5cd"}]}
