)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"30311ddc18a8b0ed43b3ffcdae62f6633426fe80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2cd8512d_be909828","updated":"2025-01-27 16:10:14.000000000","message":"Note: I\u0027ve done some functional testing on a very large estate (500+ hosts) where FIPs are exposed by ovn-bgp-agent on bgp-nic and the IPs are getting removed properly with the ones that should be there remaining as-is.","commit_id":"74f8ab7e9582873fe74c7673af52052a6829d2e7"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a012f99cabe0b5515574701cd1379f12a3c6a08d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0fadbd03_ec75afe5","updated":"2025-02-05 15:22:47.000000000","message":"Thanks for the patch, LGTM except one thing","commit_id":"250109d4a754539bbc845dcf6902cacb28e78a02"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"6393e2b8a71c9923337fbeccd55c9f8031244583","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5385576b_14477af9","updated":"2025-02-07 15:13:32.000000000","message":"Thanks for the reviews!\n\nI can\u0027t set WF+1 on this - hopefully this is good to merge.","commit_id":"019605c97fbbe2040fc129fe1fe3fb0065b241dd"}],"ovn_bgp_agent/drivers/openstack/utils/wire.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"81e6cdf654fa68346f2a4e4683f83d8b2c542786","unresolved":true,"context_lines":[{"line_number":485,"context_line":"        return _cleanup_wiring_ovn(exposed_ips)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"def _cleanup_wiring_ovn(exposed_ips):"},{"line_number":489,"context_line":"    \"\"\"Cleanup IPs that are not expected to be exposed on the bgp_nic."},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"    This may be needed in case ovn-bgp-agent misses updates from the OVN NB"}],"source_content_type":"text/x-python","patch_set":2,"id":"5c3ea603_8d845a89","line":488,"range":{"start_line":488,"start_character":0,"end_line":488,"end_character":37},"updated":"2025-02-05 07:01:54.000000000","message":"this still needs to handle the cleanup of policies, routes, proxy_arps, right? Perhaps you can leave the TODO in there and leave this new code to at least clean up the IPs","commit_id":"74f8ab7e9582873fe74c7673af52052a6829d2e7"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"1a2b558ffce1316d9b3803bc9f500f62c64d6187","unresolved":true,"context_lines":[{"line_number":485,"context_line":"        return _cleanup_wiring_ovn(exposed_ips)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"def _cleanup_wiring_ovn(exposed_ips):"},{"line_number":489,"context_line":"    \"\"\"Cleanup IPs that are not expected to be exposed on the bgp_nic."},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"    This may be needed in case ovn-bgp-agent misses updates from the OVN NB"}],"source_content_type":"text/x-python","patch_set":2,"id":"9bafa30e_4d170a7f","line":488,"range":{"start_line":488,"start_character":0,"end_line":488,"end_character":37},"in_reply_to":"5c3ea603_8d845a89","updated":"2025-02-05 13:12:39.000000000","message":"Yes, agreed. That and static_mac_bindings from the local OVN NB.\n\nI\u0027m going to leave a comment for now to keep this change small.\n\nHaven\u0027t seen the lack of cleanup for other kinds of state but definitely worth removing it explicitly.","commit_id":"74f8ab7e9582873fe74c7673af52052a6829d2e7"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"ebcc2091e8dbe824ab704bf2e5e2ee14a704eda9","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        return _cleanup_wiring_ovn(exposed_ips)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"def _cleanup_wiring_ovn(exposed_ips):"},{"line_number":489,"context_line":"    \"\"\"Cleanup IPs that are not expected to be exposed on the bgp_nic."},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"    This may be needed in case ovn-bgp-agent misses updates from the OVN NB"}],"source_content_type":"text/x-python","patch_set":2,"id":"3c430c3c_b922ec5c","line":488,"range":{"start_line":488,"start_character":0,"end_line":488,"end_character":37},"in_reply_to":"9bafa30e_4d170a7f","updated":"2025-02-05 13:46:15.000000000","message":"Done","commit_id":"74f8ab7e9582873fe74c7673af52052a6829d2e7"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a012f99cabe0b5515574701cd1379f12a3c6a08d","unresolved":true,"context_lines":[{"line_number":523,"context_line":"    ovn-bgp-agent and the NB DB or otherwise."},{"line_number":524,"context_line":"    \"\"\""},{"line_number":525,"context_line":"    current_ips \u003d linux_net.get_exposed_ips(CONF.bgp_nic)"},{"line_number":526,"context_line":"    expected_ips \u003d [ip for ip_dict in exposed_ips.values()"},{"line_number":527,"context_line":"                    for ip in ip_dict.keys()]"},{"line_number":528,"context_line":"    ips_to_delete \u003d [ip for ip in current_ips if ip not in expected_ips]"},{"line_number":529,"context_line":"    if ips_to_delete:"},{"line_number":530,"context_line":"        LOG.warning(f\"Removing IPs {ips_to_delete} from {CONF.bgp_nic} as \""},{"line_number":531,"context_line":"                    \"they are not expected to be exposed.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"04c6ce3d_91873e4f","line":528,"range":{"start_line":526,"start_character":0,"end_line":528,"end_character":72},"updated":"2025-02-05 15:22:47.000000000","message":"Set type is made to find the difference natively.\n```\ncurrent_ips \u003d set(linux_net.get_exposed_ips(CONF.bgp_nic))\nexpected_ips \u003d {ip for ip_dict in exposed_ips.values()\n                for ip in ip_dict.keys()}\nips_to_delete \u003d current_ips - expected_ips\n```","commit_id":"250109d4a754539bbc845dcf6902cacb28e78a02"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"9f16272e899cea4050cd90016ecd158becd223b5","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    ovn-bgp-agent and the NB DB or otherwise."},{"line_number":524,"context_line":"    \"\"\""},{"line_number":525,"context_line":"    current_ips \u003d linux_net.get_exposed_ips(CONF.bgp_nic)"},{"line_number":526,"context_line":"    expected_ips \u003d [ip for ip_dict in exposed_ips.values()"},{"line_number":527,"context_line":"                    for ip in ip_dict.keys()]"},{"line_number":528,"context_line":"    ips_to_delete \u003d [ip for ip in current_ips if ip not in expected_ips]"},{"line_number":529,"context_line":"    if ips_to_delete:"},{"line_number":530,"context_line":"        LOG.warning(f\"Removing IPs {ips_to_delete} from {CONF.bgp_nic} as \""},{"line_number":531,"context_line":"                    \"they are not expected to be exposed.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"4781c3c1_b0fe983b","line":528,"range":{"start_line":526,"start_character":0,"end_line":528,"end_character":72},"in_reply_to":"04c6ce3d_91873e4f","updated":"2025-02-05 19:16:21.000000000","message":"Agreed, using a set is cleaner. Going to use this as an opportunity to factor out the shared code into a separate function as well:\n\nhttps://review.opendev.org/c/openstack/ovn-bgp-agent/+/940224/3..4/ovn_bgp_agent/drivers/openstack/utils/wire.py\n\nThanks!","commit_id":"250109d4a754539bbc845dcf6902cacb28e78a02"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8c517727a7b8105ae912ae47bd836841d04f4337","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    ovn-bgp-agent and the NB DB or otherwise."},{"line_number":524,"context_line":"    \"\"\""},{"line_number":525,"context_line":"    current_ips \u003d linux_net.get_exposed_ips(CONF.bgp_nic)"},{"line_number":526,"context_line":"    expected_ips \u003d [ip for ip_dict in exposed_ips.values()"},{"line_number":527,"context_line":"                    for ip in ip_dict.keys()]"},{"line_number":528,"context_line":"    ips_to_delete \u003d [ip for ip in current_ips if ip not in expected_ips]"},{"line_number":529,"context_line":"    if ips_to_delete:"},{"line_number":530,"context_line":"        LOG.warning(f\"Removing IPs {ips_to_delete} from {CONF.bgp_nic} as \""},{"line_number":531,"context_line":"                    \"they are not expected to be exposed.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"9e65b86e_0b8d7fa6","line":528,"range":{"start_line":526,"start_character":0,"end_line":528,"end_character":72},"in_reply_to":"4781c3c1_b0fe983b","updated":"2025-02-05 21:58:52.000000000","message":"Even better :) thanks!","commit_id":"250109d4a754539bbc845dcf6902cacb28e78a02"}]}
