)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c49e15eb3f5b8caa493ce838b3e637a9da1e9b67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"88433bf2_b0a560e3","updated":"2022-02-03 14:02:49.000000000","message":"Still need to fix testing side","commit_id":"06b4c6f51bd82b236847dc59882e7740076603b5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"19dfbd9b820adb193dca086a3fd67af62ca131fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"431affec_be9dd2b2","updated":"2022-02-03 14:53:48.000000000","message":"There is some connectivity issues to be fixed in addition to this","commit_id":"6dc8bd5e506cf73109b35906b371cca0ec98c655"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"00a41a04fcde3159ec07835c3759c689d3180807","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"12709326_a6576811","updated":"2022-02-09 14:27:24.000000000","message":"Thanks works for me as an alternative of https://review.opendev.org/c/openstack/ovn-octavia-provider/+/826896","commit_id":"1ac25e88140cd0fc2111fe0c91cb7162e2d8399a"}],"ovn_octavia_provider/helper.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"d78e507f81fe8af944c18df18d37580a9da1c2ef","unresolved":true,"context_lines":[{"line_number":634,"context_line":"    def _find_lr_of_ls(self, ovn_ls, subnet_gateway_ip\u003dNone):"},{"line_number":635,"context_line":"        lsp_router_port \u003d None"},{"line_number":636,"context_line":"        for port in ovn_ls.ports or []:"},{"line_number":637,"context_line":"            if (port.type \u003d\u003d \u0027router\u0027 and"},{"line_number":638,"context_line":"                    port.external_ids.get("},{"line_number":639,"context_line":"                        ovn_const.OVN_DEVICE_OWNER_EXT_ID_KEY) \u003d\u003d"},{"line_number":640,"context_line":"                    n_const.DEVICE_OWNER_ROUTER_INTF):"},{"line_number":641,"context_line":"                if subnet_gateway_ip:"},{"line_number":642,"context_line":"                    port_cidr \u003d netaddr.IPNetwork("},{"line_number":643,"context_line":"                        port.external_ids["},{"line_number":644,"context_line":"                            ovn_const.OVN_PORT_CIDR_EXT_ID_KEY]).ip"},{"line_number":645,"context_line":"                    if netaddr.IPAddress(subnet_gateway_ip) !\u003d port_cidr:"},{"line_number":646,"context_line":"                        continue"},{"line_number":647,"context_line":"                lsp_router_port \u003d port"}],"source_content_type":"text/x-python","patch_set":3,"id":"aea83d60_274d9f69","line":644,"range":{"start_line":637,"start_character":0,"end_line":644,"end_character":67},"updated":"2022-02-07 08:14:34.000000000","message":"Now you\u0027re applying this external_id to all router interface ports. Before, it was to all ports of type \u003d\u003d \u0027router\u0027. What happens if you apply this patch to an already existing setup? Do you need to clear up the external_ids from those ports that shouldn\u0027t have it? (maybe in some sort of maintenance task or one-off at startup?)","commit_id":"1ac25e88140cd0fc2111fe0c91cb7162e2d8399a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4ee0b5dbe79d715147efdb20929f9dbcc2d29911","unresolved":true,"context_lines":[{"line_number":634,"context_line":"    def _find_lr_of_ls(self, ovn_ls, subnet_gateway_ip\u003dNone):"},{"line_number":635,"context_line":"        lsp_router_port \u003d None"},{"line_number":636,"context_line":"        for port in ovn_ls.ports or []:"},{"line_number":637,"context_line":"            if (port.type \u003d\u003d \u0027router\u0027 and"},{"line_number":638,"context_line":"                    port.external_ids.get("},{"line_number":639,"context_line":"                        ovn_const.OVN_DEVICE_OWNER_EXT_ID_KEY) \u003d\u003d"},{"line_number":640,"context_line":"                    n_const.DEVICE_OWNER_ROUTER_INTF):"},{"line_number":641,"context_line":"                if subnet_gateway_ip:"},{"line_number":642,"context_line":"                    port_cidr \u003d netaddr.IPNetwork("},{"line_number":643,"context_line":"                        port.external_ids["},{"line_number":644,"context_line":"                            ovn_const.OVN_PORT_CIDR_EXT_ID_KEY]).ip"},{"line_number":645,"context_line":"                    if netaddr.IPAddress(subnet_gateway_ip) !\u003d port_cidr:"},{"line_number":646,"context_line":"                        continue"},{"line_number":647,"context_line":"                lsp_router_port \u003d port"}],"source_content_type":"text/x-python","patch_set":3,"id":"2114077a_ef29af39","line":644,"range":{"start_line":637,"start_character":0,"end_line":644,"end_character":67},"in_reply_to":"1cf903cb_d3519383","updated":"2022-02-15 11:12:04.000000000","message":"I also think it should be ok even for existing LBs as router ports already should have this device_owner stored there so we can always check it when e.g. new member will be added to the existing (old) LB.","commit_id":"1ac25e88140cd0fc2111fe0c91cb7162e2d8399a"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"ebd0218355463398888e118cae4b22a3d3aa8abf","unresolved":true,"context_lines":[{"line_number":634,"context_line":"    def _find_lr_of_ls(self, ovn_ls, subnet_gateway_ip\u003dNone):"},{"line_number":635,"context_line":"        lsp_router_port \u003d None"},{"line_number":636,"context_line":"        for port in ovn_ls.ports or []:"},{"line_number":637,"context_line":"            if (port.type \u003d\u003d \u0027router\u0027 and"},{"line_number":638,"context_line":"                    port.external_ids.get("},{"line_number":639,"context_line":"                        ovn_const.OVN_DEVICE_OWNER_EXT_ID_KEY) \u003d\u003d"},{"line_number":640,"context_line":"                    n_const.DEVICE_OWNER_ROUTER_INTF):"},{"line_number":641,"context_line":"                if subnet_gateway_ip:"},{"line_number":642,"context_line":"                    port_cidr \u003d netaddr.IPNetwork("},{"line_number":643,"context_line":"                        port.external_ids["},{"line_number":644,"context_line":"                            ovn_const.OVN_PORT_CIDR_EXT_ID_KEY]).ip"},{"line_number":645,"context_line":"                    if netaddr.IPAddress(subnet_gateway_ip) !\u003d port_cidr:"},{"line_number":646,"context_line":"                        continue"},{"line_number":647,"context_line":"                lsp_router_port \u003d port"}],"source_content_type":"text/x-python","patch_set":3,"id":"eb71f50a_994430e7","line":644,"range":{"start_line":637,"start_character":0,"end_line":644,"end_character":67},"in_reply_to":"aea83d60_274d9f69","updated":"2022-02-07 08:38:48.000000000","message":"Disregard my comment, you\u0027re not writing any external_ids. I guess that my question has more to do with existing LBs, do we need some sort of update path to update the LR/LB associations for existing LBs?","commit_id":"1ac25e88140cd0fc2111fe0c91cb7162e2d8399a"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"57fe7a503083daf805cd19df862834ae69cc7c18","unresolved":true,"context_lines":[{"line_number":634,"context_line":"    def _find_lr_of_ls(self, ovn_ls, subnet_gateway_ip\u003dNone):"},{"line_number":635,"context_line":"        lsp_router_port \u003d None"},{"line_number":636,"context_line":"        for port in ovn_ls.ports or []:"},{"line_number":637,"context_line":"            if (port.type \u003d\u003d \u0027router\u0027 and"},{"line_number":638,"context_line":"                    port.external_ids.get("},{"line_number":639,"context_line":"                        ovn_const.OVN_DEVICE_OWNER_EXT_ID_KEY) \u003d\u003d"},{"line_number":640,"context_line":"                    n_const.DEVICE_OWNER_ROUTER_INTF):"},{"line_number":641,"context_line":"                if subnet_gateway_ip:"},{"line_number":642,"context_line":"                    port_cidr \u003d netaddr.IPNetwork("},{"line_number":643,"context_line":"                        port.external_ids["},{"line_number":644,"context_line":"                            ovn_const.OVN_PORT_CIDR_EXT_ID_KEY]).ip"},{"line_number":645,"context_line":"                    if netaddr.IPAddress(subnet_gateway_ip) !\u003d port_cidr:"},{"line_number":646,"context_line":"                        continue"},{"line_number":647,"context_line":"                lsp_router_port \u003d port"}],"source_content_type":"text/x-python","patch_set":3,"id":"1cf903cb_d3519383","line":644,"range":{"start_line":637,"start_character":0,"end_line":644,"end_character":67},"in_reply_to":"eb71f50a_994430e7","updated":"2022-02-07 08:45:06.000000000","message":"I don\u0027t think so. This is only ensuring we only look for the ports we are interested in (the ones with DEVICE_ONWER_ROUTER_INTF). For existing LBs, the loop would check more ports, but it will select the same anyway. Also, initial problem of this is when VIPs are on the provider network, and that provider network is dual-stack. In that case there are router ports (like the router_gateway port) which has 2 IPs and break the IPNetwork casting. Thus, there was not option before to have those type of loadbalancers as it was ERRORing due to this problem.","commit_id":"1ac25e88140cd0fc2111fe0c91cb7162e2d8399a"}]}
