)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"e45a86dc8ea17b382a3f1cbc23f3aef7e89bcf0a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a3f26f8a_995ad6e9","updated":"2024-06-14 18:00:02.000000000","message":"It looks like there is an issue with this change. I am observing that when there are 2 VMs with floating IP, there is a traceback that occurs because it is trying to bind another MAC to the provider port.","commit_id":"98eb4651fa0f2c6e60be7ac00f8cadd21f1c6c7f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"4039867ed2ea66814c708eeb13d1d134a2211c7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"fef8f61e_d27125dd","updated":"2024-06-10 09:15:48.000000000","message":"missing the removal part","commit_id":"98eb4651fa0f2c6e60be7ac00f8cadd21f1c6c7f"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"ad0959c09e59ecb923e591eefab2b08b1e7899b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1e5c0977_e1364034","in_reply_to":"a2633fba_7dbfbafa","updated":"2024-06-18 23:56:39.000000000","message":"Done","commit_id":"98eb4651fa0f2c6e60be7ac00f8cadd21f1c6c7f"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"fa4a66ca43e440e19605b25e3dc90bef5006c114","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d2899c32_c893b0fc","in_reply_to":"a3f26f8a_995ad6e9","updated":"2024-06-15 08:25:11.000000000","message":"This looks like the issue - I added debugging to the log output and found that there is an entry for mac address that shows up as a list, thereby being invalid.\n\n2024-06-15 03:07:57.707 7 INFO ovn_bgp_agent.drivers.openstack.utils.wire [-] herere wire_provider_port lladdr, mac: None, [\u0027fa:16:3e:83:69:f6\u0027]\n2024-06-15 03:07:57.707 7 INFO ovn_bgp_agent.drivers.openstack.utils.wire [-] herere _wire_provider_port_underlay lladdr: None\n\nI have 1 other entry like this on my compute node, which generates a traceback because it cannot create the ip neigh entry.","commit_id":"98eb4651fa0f2c6e60be7ac00f8cadd21f1c6c7f"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"d7fbdaaa2ce3e5871f74b1fd072f6ce221c56e91","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a2633fba_7dbfbafa","in_reply_to":"d2899c32_c893b0fc","updated":"2024-06-15 18:26:01.000000000","message":"On my other compute node in my cert environment, I have multiple entries that appear to be lists.","commit_id":"98eb4651fa0f2c6e60be7ac00f8cadd21f1c6c7f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"074754049dfbb6411e95dfea3d09a5265d09d7d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2d338f47_4050a706","updated":"2024-06-20 06:11:45.000000000","message":"just a couple of nits","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"121109145d3786a548a36babd220789cce084088","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1886f325_8022d8d2","updated":"2024-06-21 09:08:53.000000000","message":"one extra nit, to not miss any option","commit_id":"8ce2b286e3cf9f7a85a349a65debf0d7e469202f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e00dbde015c7ef5f4f60f94d30a4296b71692ad0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0c0f5fdd_d16bf8db","updated":"2024-06-24 08:37:44.000000000","message":"Thanks it LGTM","commit_id":"a4e307e6f53794532284f02c91c0ff7a96fb242f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"829c2fa5af8356eb559c807acf07540dcd8b3aa5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6e86eb93_87a2f959","updated":"2024-06-25 06:11:29.000000000","message":"lets try one more recheck...","commit_id":"a4e307e6f53794532284f02c91c0ff7a96fb242f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"d49bb75b19dd3ecd6bed9e4694c099482b52965e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"42faa440_6e02b60a","updated":"2024-06-26 08:26:43.000000000","message":"recheck","commit_id":"a4e307e6f53794532284f02c91c0ff7a96fb242f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"4e52e2dcc41eac9f828ee085265a6eb3b5a53900","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"93c1264d_51753fab","updated":"2024-06-25 06:11:34.000000000","message":"recheck","commit_id":"a4e307e6f53794532284f02c91c0ff7a96fb242f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"d426cd9cdc998a4eb902171b823ab9d5da3ebdfc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c35f6703_a6bce63c","updated":"2024-06-24 05:49:04.000000000","message":"recheck","commit_id":"a4e307e6f53794532284f02c91c0ff7a96fb242f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"672f620524d789b616444df8cafcfa8aab05c68e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f0e78ffe_404d9dab","updated":"2024-06-25 08:32:50.000000000","message":"there seems to be something going on with the multiGW tests","commit_id":"a4e307e6f53794532284f02c91c0ff7a96fb242f"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"6d2afa860355a518bf3816beb09cd7ce83100712","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8fdc36f0_2d3e2843","in_reply_to":"f0e78ffe_404d9dab","updated":"2024-06-25 09:30:12.000000000","message":"The coverage test passes on our end, but I\u0027m not sure what the tempest errors are yet.","commit_id":"a4e307e6f53794532284f02c91c0ff7a96fb242f"}],"ovn_bgp_agent/drivers/openstack/nb_ovn_bgp_driver.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"a14aab0364832111543cafb8c9cb0faf33c72b8f","unresolved":true,"context_lines":[{"line_number":587,"context_line":"            return"},{"line_number":588,"context_line":"        self.ovn_tenant_ls[tenant_logical_switch] \u003d True"},{"line_number":589,"context_line":"        LOG.debug(\"Adding BGP route for FIP with ip %s\", ip)"},{"line_number":590,"context_line":"        if not self._expose_provider_port([ip], mac[0], tenant_logical_switch,"},{"line_number":591,"context_line":"                                          bridge_device, bridge_vlan,"},{"line_number":592,"context_line":"                                          localnet):"},{"line_number":593,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"4917d861_575ae561","line":590,"range":{"start_line":590,"start_character":47,"end_line":590,"end_character":55},"updated":"2024-06-18 07:15:17.000000000","message":"would be nice to add a comment of why mac[0] instead of mac. Also, is there any other point where this is needed? what about the SB driver?","commit_id":"6f5a404fed08d4dcae871cd2c93a686514e5bcbd"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"fc8d114f30864bed09f6cd3142e719cf20387cd0","unresolved":false,"context_lines":[{"line_number":587,"context_line":"            return"},{"line_number":588,"context_line":"        self.ovn_tenant_ls[tenant_logical_switch] \u003d True"},{"line_number":589,"context_line":"        LOG.debug(\"Adding BGP route for FIP with ip %s\", ip)"},{"line_number":590,"context_line":"        if not self._expose_provider_port([ip], mac[0], tenant_logical_switch,"},{"line_number":591,"context_line":"                                          bridge_device, bridge_vlan,"},{"line_number":592,"context_line":"                                          localnet):"},{"line_number":593,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"9445483f_d56fe2dd","line":590,"range":{"start_line":590,"start_character":47,"end_line":590,"end_character":55},"in_reply_to":"02886e57_80d41536","updated":"2024-06-18 23:55:28.000000000","message":"Done","commit_id":"6f5a404fed08d4dcae871cd2c93a686514e5bcbd"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"8ff6c32d4cc0e75b3f2e457ce120dd2dcb6fa246","unresolved":true,"context_lines":[{"line_number":587,"context_line":"            return"},{"line_number":588,"context_line":"        self.ovn_tenant_ls[tenant_logical_switch] \u003d True"},{"line_number":589,"context_line":"        LOG.debug(\"Adding BGP route for FIP with ip %s\", ip)"},{"line_number":590,"context_line":"        if not self._expose_provider_port([ip], mac[0], tenant_logical_switch,"},{"line_number":591,"context_line":"                                          bridge_device, bridge_vlan,"},{"line_number":592,"context_line":"                                          localnet):"},{"line_number":593,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"02886e57_80d41536","line":590,"range":{"start_line":590,"start_character":47,"end_line":590,"end_character":55},"in_reply_to":"4917d861_575ae561","updated":"2024-06-18 15:19:44.000000000","message":"I will add a note to that. It is only on exposing FIP. The other calls do not have this issue. It is a list.","commit_id":"6f5a404fed08d4dcae871cd2c93a686514e5bcbd"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"074754049dfbb6411e95dfea3d09a5265d09d7d5","unresolved":true,"context_lines":[{"line_number":591,"context_line":"        # NOTE(jayjahns): The mac is inside of a list, so we need to pull the"},{"line_number":592,"context_line":"        # first element. This only impacts the ports created for floating"},{"line_number":593,"context_line":"        # ip addresses."},{"line_number":594,"context_line":"        if not self._expose_provider_port([ip], mac[0], tenant_logical_switch,"},{"line_number":595,"context_line":"                                          bridge_device, bridge_vlan,"},{"line_number":596,"context_line":"                                          localnet):"},{"line_number":597,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":6,"id":"2900c7df_d0c70000","line":594,"range":{"start_line":594,"start_character":48,"end_line":594,"end_character":55},"updated":"2024-06-20 06:11:45.000000000","message":"on a second thought, if this only happens for FIPs, perhaps the right thing to do is to call expose_fip/_expose_fip with the mac[0] already, so that here is simply mac. I would change that onthe nb_bgp_watcher.py instead, and in the syncs from nb_ovn_bgp_driver.py, as perhaps in there it is already not a list and this could break something if there is ovn_loadbalancers","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"5534ef1896e47c2640f27f4ab15a2b8c395ce147","unresolved":true,"context_lines":[{"line_number":591,"context_line":"        # NOTE(jayjahns): The mac is inside of a list, so we need to pull the"},{"line_number":592,"context_line":"        # first element. This only impacts the ports created for floating"},{"line_number":593,"context_line":"        # ip addresses."},{"line_number":594,"context_line":"        if not self._expose_provider_port([ip], mac[0], tenant_logical_switch,"},{"line_number":595,"context_line":"                                          bridge_device, bridge_vlan,"},{"line_number":596,"context_line":"                                          localnet):"},{"line_number":597,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a75e8ba_2920b16e","line":594,"range":{"start_line":594,"start_character":48,"end_line":594,"end_character":55},"in_reply_to":"2900c7df_d0c70000","updated":"2024-06-20 21:53:03.000000000","message":"I will make this change once test cases are ensured.","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cf164d6b8c4c09ad3a36604ff764a2f2451a8a48","unresolved":false,"context_lines":[{"line_number":591,"context_line":"        # NOTE(jayjahns): The mac is inside of a list, so we need to pull the"},{"line_number":592,"context_line":"        # first element. This only impacts the ports created for floating"},{"line_number":593,"context_line":"        # ip addresses."},{"line_number":594,"context_line":"        if not self._expose_provider_port([ip], mac[0], tenant_logical_switch,"},{"line_number":595,"context_line":"                                          bridge_device, bridge_vlan,"},{"line_number":596,"context_line":"                                          localnet):"},{"line_number":597,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":6,"id":"38606849_49c8a2a8","line":594,"range":{"start_line":594,"start_character":48,"end_line":594,"end_character":55},"in_reply_to":"9a75e8ba_2920b16e","updated":"2024-06-21 08:32:22.000000000","message":"Done","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"121109145d3786a548a36babd220789cce084088","unresolved":true,"context_lines":[{"line_number":234,"context_line":"                self.get_port_external_ip_and_ls(port.name))"},{"line_number":235,"context_line":"            if not external_ip or not ls_name:"},{"line_number":236,"context_line":"                return"},{"line_number":237,"context_line":"            return self._expose_fip(external_ip, external_mac[0], ls_name, port)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        logical_switch \u003d port.external_ids.get("},{"line_number":240,"context_line":"            constants.OVN_LS_NAME_EXT_ID_KEY)"}],"source_content_type":"text/x-python","patch_set":8,"id":"4bc30599_a38ce283","line":237,"range":{"start_line":237,"start_character":3,"end_line":237,"end_character":80},"updated":"2024-06-21 09:08:53.000000000","message":"either you modify this on the get_port_external_ip_and_ls, so that it returns just one mac, or you need to modify it in all the places where _expose_fip is called, like in _expose_ovn_lb_fip. If you modify that on get_port_external_ip_and_ls, then you don\u0027t need to modify it anywhere else (not even the watcher)","commit_id":"8ce2b286e3cf9f7a85a349a65debf0d7e469202f"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"74b926a728e7f2df1b112552024df402a3364046","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                self.get_port_external_ip_and_ls(port.name))"},{"line_number":235,"context_line":"            if not external_ip or not ls_name:"},{"line_number":236,"context_line":"                return"},{"line_number":237,"context_line":"            return self._expose_fip(external_ip, external_mac[0], ls_name, port)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        logical_switch \u003d port.external_ids.get("},{"line_number":240,"context_line":"            constants.OVN_LS_NAME_EXT_ID_KEY)"}],"source_content_type":"text/x-python","patch_set":8,"id":"acf26982_8e40192d","line":237,"range":{"start_line":237,"start_character":3,"end_line":237,"end_character":80},"in_reply_to":"4bc30599_a38ce283","updated":"2024-06-21 10:23:59.000000000","message":"Done","commit_id":"8ce2b286e3cf9f7a85a349a65debf0d7e469202f"}],"ovn_bgp_agent/drivers/openstack/utils/wire.py":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":618,"context_line":"                linux_net.add_ip_rule(ip, routing_table[bridge_device],"},{"line_number":619,"context_line":"                                      dev\u003ddev, lladdr\u003dlladdr)"},{"line_number":620,"context_line":"            else:"},{"line_number":621,"context_line":"                dev \u003d bridge_device "},{"line_number":622,"context_line":"                linux_net.add_ip_rule(ip, routing_table[bridge_device], dev\u003ddev)"},{"line_number":623,"context_line":"        except agent_exc.InvalidPortIP:"},{"line_number":624,"context_line":"            LOG.exception(\"Invalid IP to create a rule for port on the \""}],"source_content_type":"text/x-python","patch_set":4,"id":"3d79fbb1_5def0354","line":621,"in_reply_to":"b5fb747e_e26b95bf","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: W291 trailing whitespace\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":619,"context_line":"                                      dev\u003ddev, lladdr\u003dlladdr)"},{"line_number":620,"context_line":"            else:"},{"line_number":621,"context_line":"                dev \u003d bridge_device "},{"line_number":622,"context_line":"                linux_net.add_ip_rule(ip, routing_table[bridge_device], dev\u003ddev)"},{"line_number":623,"context_line":"        except agent_exc.InvalidPortIP:"},{"line_number":624,"context_line":"            LOG.exception(\"Invalid IP to create a rule for port on the \""},{"line_number":625,"context_line":"                          \"provider network: %s\", ip)"}],"source_content_type":"text/x-python","patch_set":4,"id":"372e9c52_5577136f","line":622,"in_reply_to":"2d78fcab_965aa265","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":700,"context_line":"                return False"},{"line_number":701,"context_line":"        else:"},{"line_number":702,"context_line":"            try:"},{"line_number":703,"context_line":"                linux_net.del_ip_rule(ip, routing_table[bridge_device], dev\u003ddev)"},{"line_number":704,"context_line":"            except agent_exc.InvalidPortIP:"},{"line_number":705,"context_line":"                LOG.exception(\"Invalid IP to delete a rule for the \""},{"line_number":706,"context_line":"                              \"provider port: %s\", ip)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ae165173_3aba7bff","line":703,"in_reply_to":"55b617d7_e7f11914","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"}],"ovn_bgp_agent/tests/unit/drivers/openstack/test_nb_ovn_bgp_driver.py":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        ret \u003d self.nb_bgp_driver.expose_fip(ip, mac, logical_switch, row)"},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"        mock_get_ls_localnet_info.assert_called_once_with(logical_switch)"},{"line_number":776,"context_line":"        mock_expose_provider_port.assert_called_once_with([ip], mac[0], \u0027test-ls\u0027,"},{"line_number":777,"context_line":"                                                          \u0027br-ex\u0027, 100,"},{"line_number":778,"context_line":"                                                          \u0027fake-localnet\u0027)"},{"line_number":779,"context_line":"        self.assertTrue(ret)"}],"source_content_type":"text/x-python","patch_set":4,"id":"4f6d88a7_6751f9c7","line":776,"in_reply_to":"69511b41_671487f8","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (82 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"8b12034ba3191a0d68ff2e047375a81dfe3cc8a9","unresolved":false,"context_lines":[{"line_number":754,"context_line":"        ret \u003d self.nb_bgp_driver.get_port_external_ip_and_ls(\u0027fake-port\u0027)"},{"line_number":755,"context_line":""},{"line_number":756,"context_line":"        self.assertEqual(ret,"},{"line_number":757,"context_line":"                         (nat_entry.external_ip, nat_entry.external_mac[0], None))"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    def test_expose_fip(self):"},{"line_number":760,"context_line":"        ip \u003d \u002710.0.0.1\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"44c99a9c_a7c075bf","line":757,"in_reply_to":"222df7bb_72e47742","updated":"2024-06-21 12:48:10.000000000","message":"\u003e pep8: E501 line too long (82 \u003e 79 characters)\n\nPlease fix.","commit_id":"47390aafb01974b24eb31c878882b97e4b8e371c"}],"ovn_bgp_agent/tests/unit/drivers/openstack/test_ovn_bgp_driver.py":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1009,"context_line":"                          mock.call(CONF.bgp_nic, [self.ipv6])]"},{"line_number":1010,"context_line":"        mock_del_ip_dev.assert_has_calls(expected_calls)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1013,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1014,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1015,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"a815f1b1_5c0e6659","line":1012,"in_reply_to":"f33a89b5_8bbaf275","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        mock_del_ip_dev.assert_has_calls(expected_calls)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1013,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1014,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        expected_calls \u003d [mock.call(mock.ANY, self.ipv4, \u0027fake-table\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f8e7d90_6dbdf387","line":1013,"in_reply_to":"799d3428_cfd58639","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1066,"context_line":"        mock_add_ip_dev.assert_called_once_with("},{"line_number":1067,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1068,"context_line":""},{"line_number":1069,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1070,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1071,"context_line":"        mock_add_rule.assert_has_calls(expected_calls)"},{"line_number":1072,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"0f8e06a4_1197e513","line":1069,"in_reply_to":"5a54b499_0dbbc9e6","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1067,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1068,"context_line":""},{"line_number":1069,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1070,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1071,"context_line":"        mock_add_rule.assert_has_calls(expected_calls)"},{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":"        expected_calls \u003d [mock.call(mock.ANY, self.ipv4, \u0027fake-table\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"a379bc23_652a57ae","line":1070,"in_reply_to":"4df0ed01_75e924c5","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"        mock_add_ip_dev.assert_called_once_with("},{"line_number":1150,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1151,"context_line":""},{"line_number":1152,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1153,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1154,"context_line":"        mock_add_rule.assert_has_calls(expected_calls)"},{"line_number":1155,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d817b034_5d3b98ca","line":1152,"in_reply_to":"912a1c21_7346e6dc","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1151,"context_line":""},{"line_number":1152,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1153,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1154,"context_line":"        mock_add_rule.assert_has_calls(expected_calls)"},{"line_number":1155,"context_line":""},{"line_number":1156,"context_line":"        expected_calls \u003d [mock.call(mock.ANY, self.ipv4, \u0027fake-table\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"530d80b7_efad7a8b","line":1153,"in_reply_to":"28c125bb_13753e60","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1296,"context_line":"        mock_add_ip_dev.assert_called_once_with("},{"line_number":1297,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1300,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1301,"context_line":"        mock_add_rule.assert_has_calls(expected_calls)"},{"line_number":1302,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b1012a7d_31bb8386","line":1299,"in_reply_to":"837c9724_62ba3f6d","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1300,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1301,"context_line":"        mock_add_rule.assert_has_calls(expected_calls)"},{"line_number":1302,"context_line":""},{"line_number":1303,"context_line":"        expected_calls \u003d [mock.call(mock.ANY, self.ipv4, \u0027fake-table\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"c5043660_6984c878","line":1300,"in_reply_to":"46c98ed5_be868f2d","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1436,"context_line":"        mock_del_ip_dev.assert_called_once_with("},{"line_number":1437,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1440,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1441,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1442,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b19cc849_8b1d1859","line":1439,"in_reply_to":"d8419e4e_02a81c39","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1440,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1441,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":"        expected_calls \u003d [mock.call(mock.ANY, self.ipv4, \u0027fake-table\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3e5a77d7_88b19e63","line":1440,"in_reply_to":"4bd27d38_b938e935","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1474,"context_line":"        mock_del_ip_dev.assert_called_once_with("},{"line_number":1475,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1476,"context_line":""},{"line_number":1477,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1478,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1479,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1480,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e733c5ad_001db66b","line":1477,"in_reply_to":"e8729576_cb4e016f","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1475,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1476,"context_line":""},{"line_number":1477,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1478,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1479,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1480,"context_line":""},{"line_number":1481,"context_line":"        expected_calls \u003d [mock.call(mock.ANY, self.ipv4, \u0027fake-table\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"f31b11ee_d139a559","line":1478,"in_reply_to":"054cecfe_6a59c916","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1555,"context_line":"        mock_del_ip_dev.assert_called_once_with("},{"line_number":1556,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1557,"context_line":""},{"line_number":1558,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1559,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1560,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1561,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a62dee7_462f0fce","line":1558,"in_reply_to":"c38edd0f_d902ff67","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cc1d86ad03c6daa3b866d8cbc31b5296634a3910","unresolved":false,"context_lines":[{"line_number":1556,"context_line":"            CONF.bgp_nic, ips)"},{"line_number":1557,"context_line":""},{"line_number":1558,"context_line":"        expected_calls \u003d [mock.call(self.ipv4, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027),"},{"line_number":1559,"context_line":"                          mock.call(self.ipv6, \u0027fake-table\u0027, dev\u003d\u0027fake-bridge\u0027)]"},{"line_number":1560,"context_line":"        mock_del_rule.assert_has_calls(expected_calls)"},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        expected_calls \u003d [mock.call(mock.ANY, self.ipv4, \u0027fake-table\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"0c70edff_8b445520","line":1559,"in_reply_to":"9625f9b5_9e25240a","updated":"2024-06-18 21:50:51.000000000","message":"\u003e pep8: E501 line too long (80 \u003e 79 characters)\n\nPlease fix.","commit_id":"a04f21af0c4ed1915cf8f32fc75f21e5e544f8eb"}],"ovn_bgp_agent/tests/unit/drivers/openstack/utils/test_wire.py":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"8b12034ba3191a0d68ff2e047375a81dfe3cc8a9","unresolved":false,"context_lines":[{"line_number":694,"context_line":"            routing_tables, cr_lrp_ips)"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"    @mock.patch.object(linux_net, \u0027add_ip_route\u0027)"},{"line_number":698,"context_line":"    @mock.patch.object(linux_net, \u0027get_ip_version\u0027)"},{"line_number":699,"context_line":"    @mock.patch.object(linux_net, \u0027add_ip_rule\u0027)"},{"line_number":700,"context_line":"    def test__wire_lrp_port_underlay(self, m_ip_rule, m_ip_version,"}],"source_content_type":"text/x-python","patch_set":9,"id":"2eb9f687_c7466c84","line":697,"in_reply_to":"342302ad_7c918bb8","updated":"2024-06-21 12:48:10.000000000","message":"\u003e pep8: E303 too many blank lines (2)\n\nPlease fix.","commit_id":"47390aafb01974b24eb31c878882b97e4b8e371c"}],"ovn_bgp_agent/utils/linux_net.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"a14aab0364832111543cafb8c9cb0faf33c72b8f","unresolved":true,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"91107027_bfdd3b00","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"updated":"2024-06-18 07:15:17.000000000","message":"why removing the if? if there is no lladdr, there is no address to add, right? plus, in some cases we don\u0027t want to add the entry and that was the way to control it","commit_id":"6f5a404fed08d4dcae871cd2c93a686514e5bcbd"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"ad0959c09e59ecb923e591eefab2b08b1e7899b2","unresolved":false,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"71c5d4b5_8361a981","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"in_reply_to":"1fa728c4_e6ef74ab","updated":"2024-06-18 23:56:39.000000000","message":"Done","commit_id":"6f5a404fed08d4dcae871cd2c93a686514e5bcbd"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"8ff6c32d4cc0e75b3f2e457ce120dd2dcb6fa246","unresolved":true,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa728c4_e6ef74ab","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"in_reply_to":"91107027_bfdd3b00","updated":"2024-06-18 15:19:44.000000000","message":"For iproute, the lladdr is technically not needed to add a neighbor. The actual command does not error out if you have a \"None\" value for lladdr, but in all of our cases there is a lladdr for IPs being exposed.\n\nFor the del_ip_nei, its not needed at all. Simply call it and with IP and dev and it will remove it.\n\nThat\u0027s why we added dev to the wire_provider_port functions.","commit_id":"6f5a404fed08d4dcae871cd2c93a686514e5bcbd"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"074754049dfbb6411e95dfea3d09a5265d09d7d5","unresolved":true,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da3a38fc_f13aa1a0","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"updated":"2024-06-20 06:11:45.000000000","message":"still, if there is no lladdr to add/remove, why calling this? I would leave this as it was","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cf164d6b8c4c09ad3a36604ff764a2f2451a8a48","unresolved":false,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":6,"id":"d26d4004_327f68ef","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"in_reply_to":"1bcb13e3_e7d6c381","updated":"2024-06-21 08:32:22.000000000","message":"Done","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"dd73908e61466459b81291810668b3bbf6287331","unresolved":true,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":6,"id":"57e0f9ef_5a343774","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"in_reply_to":"55eb94d4_be5a85a6","updated":"2024-06-21 06:07:07.000000000","message":"when adding FIPs or IPs on the provider network, there is no need to add the permanent entry, therefore this is called without lladdr. And even if for some driver that is not the case, it is ok to check if there is an lladdr to skip the call instead of calling it with an empty value. Given that leaving it as it was should not break the case where there is lladdr, please leave it with the if","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"c5dbedad2bf5352c588833fc01de7c55172ce5e6","unresolved":true,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1bcb13e3_e7d6c381","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"in_reply_to":"57e0f9ef_5a343774","updated":"2024-06-21 07:01:03.000000000","message":"Do you want the comparison to occur on del_ip_rule as well? Because if I remove it, entries in the ip neigh table that are permanent do not clear out, and floating IPs that are in ip neigh also do not clear out.","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"5534ef1896e47c2640f27f4ab15a2b8c395ce147","unresolved":true,"context_lines":[{"line_number":681,"context_line":"    rule \u003d create_rule_from_ip(ip, table)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    ovn_bgp_agent.privileged.linux_net.rule_create(rule)"},{"line_number":684,"context_line":"    add_ip_nei(ip, lladdr, dev)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"def add_ip_nei(ip, lladdr, dev):"}],"source_content_type":"text/x-python","patch_set":6,"id":"55eb94d4_be5a85a6","line":684,"range":{"start_line":684,"start_character":4,"end_line":684,"end_character":31},"in_reply_to":"da3a38fc_f13aa1a0","updated":"2024-06-20 21:53:03.000000000","message":"lladdr should never be blank on creation, based on the observations I\u0027m seeing in our cert environment.\n\nlladdr is blank; however, on the delete action.\n\nWe can run the check on adding, but on deleting, there should be no check. Only a dev is required in both circumstances.","commit_id":"dfaf1bc6fd28f37bc7324cd1a6b606aaf53c6276"}]}
