)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"f63d454fb4fd0f56fee5bf3b9ebf458c165d0481","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b735e3d3_bd22c5a8","updated":"2025-10-09 20:58:12.000000000","message":"recheck check if the timeout is related","commit_id":"20a77291098d771aeb515ad9fc6451362d2e4f41"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fd00d5eaa9f822aff50e40eacd189a1aac5ee2c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9e2b2f6e_52622c57","updated":"2025-11-05 15:50:49.000000000","message":"recheck neutron-functional not related","commit_id":"bc003b9d56e151e9f365c749d5b4f41d597aac22"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"75fe7a0d42a7fc482e3a93eedfdb2e8416b675a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"3c112dda_03543ad5","updated":"2026-01-27 14:33:44.000000000","message":"LGTM, after comments are resolved","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bbb51cf889f96cc9ee74d3cdbcc806373780595e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"98bbe69e_f6df0604","updated":"2026-01-27 12:56:10.000000000","message":"please fix pep8 error and LGTM with this for me :)","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"2a06b8cd7d11a72b9ff16177fbab2c05adf92f06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"24f3708e_cdc63cda","in_reply_to":"98bbe69e_f6df0604","updated":"2026-01-27 17:24:07.000000000","message":"interesting, I ran pep8 locally and I thought that very thing the pep8 suggests would be an \"expression without assignment\" :)","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"122921e8995216b46afde9a410cd7ce7ff6955d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"46b0ef66_cc1ba48b","updated":"2026-01-28 16:35:16.000000000","message":"recheck functional test irellevat","commit_id":"c1039abbbd7577fef06868744c50625ea59037ee"}],"neutron/agent/ovn/extensions/bgp/bridge.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fd00d5eaa9f822aff50e40eacd189a1aac5ee2c8","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        for pb in port_bindings:"},{"line_number":116,"context_line":"            if (pb.external_ids.get("},{"line_number":117,"context_line":"                    constants.BGP_CHASSIS_NETWORK_NAME) \u003d\u003d self.name):"},{"line_number":118,"context_line":"                return pb.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return None"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def discover_bgp_peer_in_thread(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"c5c94fad_bd9d2725","line":119,"range":{"start_line":118,"start_character":23,"end_line":119,"end_character":1},"updated":"2025-11-05 15:50:49.000000000","message":"no action: we use this in the metadata code too. We should have an auxiliary method","commit_id":"bc003b9d56e151e9f365c749d5b4f41d597aac22"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"473dd068ca4e5dc08366148e33f95c30ce27c1b1","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        for pb in port_bindings:"},{"line_number":116,"context_line":"            if (pb.external_ids.get("},{"line_number":117,"context_line":"                    constants.BGP_CHASSIS_NETWORK_NAME) \u003d\u003d self.name):"},{"line_number":118,"context_line":"                return pb.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return None"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def discover_bgp_peer_in_thread(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"510ffd20_e2f37897","line":119,"range":{"start_line":118,"start_character":23,"end_line":119,"end_character":1},"in_reply_to":"73994f54_75e92875","updated":"2026-01-02 21:45:19.000000000","message":"Done","commit_id":"bc003b9d56e151e9f365c749d5b4f41d597aac22"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d4d8ee8d333d089fbe2c622b533f9c118cc9e239","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        for pb in port_bindings:"},{"line_number":116,"context_line":"            if (pb.external_ids.get("},{"line_number":117,"context_line":"                    constants.BGP_CHASSIS_NETWORK_NAME) \u003d\u003d self.name):"},{"line_number":118,"context_line":"                return pb.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return None"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def discover_bgp_peer_in_thread(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"73994f54_75e92875","line":119,"range":{"start_line":118,"start_character":23,"end_line":119,"end_character":1},"in_reply_to":"c5c94fad_bd9d2725","updated":"2025-11-17 19:54:14.000000000","message":"https://review.opendev.org/c/openstack/neutron/+/967424","commit_id":"bc003b9d56e151e9f365c749d5b4f41d597aac22"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c9caf7e475c581f934d00905444e35af77592c89","unresolved":true,"context_lines":[{"line_number":61,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, ext_ids)).execute("},{"line_number":62,"context_line":"                check_error\u003dTrue)"},{"line_number":63,"context_line":"        for pb in port_bindings:"},{"line_number":64,"context_line":"            if (pb.external_ids.get("},{"line_number":65,"context_line":"                    constants.LRP_NETWORK_NAME_EXT_ID_KEY) \u003d\u003d self.name):"},{"line_number":66,"context_line":"                return pb.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        LOG.debug(\"LRP MAC does not exist yet for %s\", self.name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3321c9cc_4c6f704d","line":65,"range":{"start_line":64,"start_character":0,"end_line":65,"end_character":73},"updated":"2026-01-23 16:29:03.000000000","message":"Shouldn\u0027t this already be True due to the db_find_rows including it?","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"eb95bfafaae383576d7f6f34ab458f5d1887e51d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, ext_ids)).execute("},{"line_number":62,"context_line":"                check_error\u003dTrue)"},{"line_number":63,"context_line":"        for pb in port_bindings:"},{"line_number":64,"context_line":"            if (pb.external_ids.get("},{"line_number":65,"context_line":"                    constants.LRP_NETWORK_NAME_EXT_ID_KEY) \u003d\u003d self.name):"},{"line_number":66,"context_line":"                return pb.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        LOG.debug(\"LRP MAC does not exist yet for %s\", self.name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ec518f15_a01911bb","line":65,"range":{"start_line":64,"start_character":0,"end_line":65,"end_character":73},"in_reply_to":"3321c9cc_4c6f704d","updated":"2026-01-26 18:41:11.000000000","message":"Done","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"}],"neutron/agent/ovn/extensions/bgp/events.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c9caf7e475c581f934d00905444e35af77592c89","unresolved":true,"context_lines":[{"line_number":176,"context_line":"        super().__init__(agent_api)"},{"line_number":177,"context_line":"        self.chassis \u003d ovsdb.get_own_chassis_name(agent_api.ovs_idl)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def match_fn(self, event, row, old):"},{"line_number":180,"context_line":"        if not super().match_fn(event, row, old):"},{"line_number":181,"context_line":"            return False"},{"line_number":182,"context_line":"        if row.type !\u003d ovn_const.PB_TYPE_L3GATEWAY:"}],"source_content_type":"text/x-python","patch_set":14,"id":"306f1d6c_2136e8d9","line":179,"updated":"2026-01-23 16:29:03.000000000","message":"On update, it looks like we would run this if the Port_Binding was updated, but the mac wasn\u0027t changed? Is that what we want?","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"eb95bfafaae383576d7f6f34ab458f5d1887e51d","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        super().__init__(agent_api)"},{"line_number":177,"context_line":"        self.chassis \u003d ovsdb.get_own_chassis_name(agent_api.ovs_idl)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def match_fn(self, event, row, old):"},{"line_number":180,"context_line":"        if not super().match_fn(event, row, old):"},{"line_number":181,"context_line":"            return False"},{"line_number":182,"context_line":"        if row.type !\u003d ovn_const.PB_TYPE_L3GATEWAY:"}],"source_content_type":"text/x-python","patch_set":14,"id":"44565b21_2ef82bd1","line":179,"in_reply_to":"306f1d6c_2136e8d9","updated":"2026-01-26 18:41:11.000000000","message":"I think so. The MAC should be consistent and the update event is to trigger this whenever we bind the LRP to this chassis.","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"0d4707426fb8129d740b0d88f6b4494faa614012","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        super().__init__(agent_api)"},{"line_number":177,"context_line":"        self.chassis \u003d ovsdb.get_own_chassis_name(agent_api.ovs_idl)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def match_fn(self, event, row, old):"},{"line_number":180,"context_line":"        if not super().match_fn(event, row, old):"},{"line_number":181,"context_line":"            return False"},{"line_number":182,"context_line":"        if row.type !\u003d ovn_const.PB_TYPE_L3GATEWAY:"}],"source_content_type":"text/x-python","patch_set":14,"id":"54ca342c_554fc336","line":179,"in_reply_to":"44565b21_2ef82bd1","updated":"2026-01-26 22:18:25.000000000","message":"But wouldn\u0027t it be consistent unless the mac address changed?","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"fe2cbdc51b99c845b49b9f09a71e8cf88ac024a1","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        super().__init__(agent_api)"},{"line_number":177,"context_line":"        self.chassis \u003d ovsdb.get_own_chassis_name(agent_api.ovs_idl)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def match_fn(self, event, row, old):"},{"line_number":180,"context_line":"        if not super().match_fn(event, row, old):"},{"line_number":181,"context_line":"            return False"},{"line_number":182,"context_line":"        if row.type !\u003d ovn_const.PB_TYPE_L3GATEWAY:"}],"source_content_type":"text/x-python","patch_set":14,"id":"38bfbd84_c39163d7","line":179,"in_reply_to":"54ca342c_554fc336","updated":"2026-01-26 22:58:45.000000000","message":"I don\u0027t think I understand what you mean.","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"c167e2845f43fcd1fa5ae42da6f7e996146d4552","unresolved":true,"context_lines":[{"line_number":181,"context_line":"            return False"},{"line_number":182,"context_line":"        if row.type !\u003d ovn_const.PB_TYPE_L3GATEWAY:"},{"line_number":183,"context_line":"            return False"},{"line_number":184,"context_line":"        if row.chassis and row.chassis[0].name !\u003d self.chassis:"},{"line_number":185,"context_line":"            return False"},{"line_number":186,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":187,"context_line":"            return False"},{"line_number":188,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":16,"id":"503d3d53_73ad9b9b","line":185,"range":{"start_line":184,"start_character":0,"end_line":185,"end_character":24},"updated":"2026-01-26 21:00:23.000000000","message":"nit: I feel like this condition should be checked before l3gateway attribute","commit_id":"e16bf28fa9a6c71a351cd055d51472512607692e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d211a5ce5f7d36177df6d5b8d390304f8c7703d1","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            return False"},{"line_number":182,"context_line":"        if row.type !\u003d ovn_const.PB_TYPE_L3GATEWAY:"},{"line_number":183,"context_line":"            return False"},{"line_number":184,"context_line":"        if row.chassis and row.chassis[0].name !\u003d self.chassis:"},{"line_number":185,"context_line":"            return False"},{"line_number":186,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":187,"context_line":"            return False"},{"line_number":188,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":16,"id":"7e446098_b924a893","line":185,"range":{"start_line":184,"start_character":0,"end_line":185,"end_character":24},"in_reply_to":"503d3d53_73ad9b9b","updated":"2026-01-26 22:57:36.000000000","message":"Done","commit_id":"e16bf28fa9a6c71a351cd055d51472512607692e"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"c167e2845f43fcd1fa5ae42da6f7e996146d4552","unresolved":true,"context_lines":[{"line_number":183,"context_line":"            return False"},{"line_number":184,"context_line":"        if row.chassis and row.chassis[0].name !\u003d self.chassis:"},{"line_number":185,"context_line":"            return False"},{"line_number":186,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":187,"context_line":"            return False"},{"line_number":188,"context_line":"        return True"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def run(self, event, row, old):"},{"line_number":191,"context_line":"        lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"}],"source_content_type":"text/x-python","patch_set":16,"id":"0b8a42cf_c435d2d4","line":188,"range":{"start_line":186,"start_character":1,"end_line":188,"end_character":19},"updated":"2026-01-26 21:00:23.000000000","message":"nit: At this point you can just\n`return constants.LRP_NETWORK_NAME_EXT_ID_KEY in row.external_ids`","commit_id":"e16bf28fa9a6c71a351cd055d51472512607692e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d211a5ce5f7d36177df6d5b8d390304f8c7703d1","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            return False"},{"line_number":184,"context_line":"        if row.chassis and row.chassis[0].name !\u003d self.chassis:"},{"line_number":185,"context_line":"            return False"},{"line_number":186,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":187,"context_line":"            return False"},{"line_number":188,"context_line":"        return True"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def run(self, event, row, old):"},{"line_number":191,"context_line":"        lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"}],"source_content_type":"text/x-python","patch_set":16,"id":"318c844d_cfe5c222","line":188,"range":{"start_line":186,"start_character":1,"end_line":188,"end_character":19},"in_reply_to":"0b8a42cf_c435d2d4","updated":"2026-01-26 22:57:36.000000000","message":"With the comment below I added the mac check here and it must happen after we know this PB Is for us.","commit_id":"e16bf28fa9a6c71a351cd055d51472512607692e"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"c167e2845f43fcd1fa5ae42da6f7e996146d4552","unresolved":true,"context_lines":[{"line_number":188,"context_line":"        return True"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def run(self, event, row, old):"},{"line_number":191,"context_line":"        lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":192,"context_line":"        network_name \u003d row.external_ids[constants.LRP_NETWORK_NAME_EXT_ID_KEY]"},{"line_number":193,"context_line":"        try:"},{"line_number":194,"context_line":"            bridge \u003d self.bgp_agent.bgp_bridges[network_name]"}],"source_content_type":"text/x-python","patch_set":16,"id":"abb6df84_afaaff50","line":191,"updated":"2026-01-26 21:00:23.000000000","message":"Should this be wrapped in a `try ... except IndexError` in case the mac does not exists? (slow OVN etc). I remember issues in OVN metadata agent where `mac` was not always populated. Or even better, have the `match_fn` check for `mac`","commit_id":"e16bf28fa9a6c71a351cd055d51472512607692e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d211a5ce5f7d36177df6d5b8d390304f8c7703d1","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        return True"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def run(self, event, row, old):"},{"line_number":191,"context_line":"        lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":192,"context_line":"        network_name \u003d row.external_ids[constants.LRP_NETWORK_NAME_EXT_ID_KEY]"},{"line_number":193,"context_line":"        try:"},{"line_number":194,"context_line":"            bridge \u003d self.bgp_agent.bgp_bridges[network_name]"}],"source_content_type":"text/x-python","patch_set":16,"id":"40f12deb_61aebd46","line":191,"in_reply_to":"abb6df84_afaaff50","updated":"2026-01-26 22:57:36.000000000","message":"Done","commit_id":"e16bf28fa9a6c71a351cd055d51472512607692e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e3169e1fe1a5ff5fdf3fda183a7588feba257118","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":186,"context_line":"            return False"},{"line_number":187,"context_line":"        try:"},{"line_number":188,"context_line":"            lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":189,"context_line":"        except IndexError:"},{"line_number":190,"context_line":"            LOG.error(\"Failed to get MAC address from port binding %s\","},{"line_number":191,"context_line":"                      row)"}],"source_content_type":"text/x-python","patch_set":18,"id":"df35b0a8_c6a4d280","line":188,"updated":"2026-01-27 16:31:01.000000000","message":"I\u0027m assuming if we get here since Port_Binding.mac is copied from LSP.addresses that none of the weird non-mac values for LSP.addresses would end up here in normal operation? And I think a later patch is actually using a helper function to verify macs here, and addresses Miro\u0027s comment about assignment as well.","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"146556e82dfab575fd2252bd279743cb16e6fcd8","unresolved":true,"context_lines":[{"line_number":185,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":186,"context_line":"            return False"},{"line_number":187,"context_line":"        try:"},{"line_number":188,"context_line":"            lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":189,"context_line":"        except IndexError:"},{"line_number":190,"context_line":"            LOG.error(\"Failed to get MAC address from port binding %s\","},{"line_number":191,"context_line":"                      row)"}],"source_content_type":"text/x-python","patch_set":18,"id":"fa925578_52640615","line":188,"updated":"2026-01-27 14:31:26.000000000","message":"nit (if you are pushing another update). You are not using `lrp_mac` so dont need to assign it, or use `_`","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"2a06b8cd7d11a72b9ff16177fbab2c05adf92f06","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":186,"context_line":"            return False"},{"line_number":187,"context_line":"        try:"},{"line_number":188,"context_line":"            lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":189,"context_line":"        except IndexError:"},{"line_number":190,"context_line":"            LOG.error(\"Failed to get MAC address from port binding %s\","},{"line_number":191,"context_line":"                      row)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5e306ce5_689b3194","line":188,"in_reply_to":"df35b0a8_c6a4d280","updated":"2026-01-27 17:24:07.000000000","message":"Correct","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"2a06b8cd7d11a72b9ff16177fbab2c05adf92f06","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        if constants.LRP_NETWORK_NAME_EXT_ID_KEY not in row.external_ids:"},{"line_number":186,"context_line":"            return False"},{"line_number":187,"context_line":"        try:"},{"line_number":188,"context_line":"            lrp_mac \u003d row.mac[0].split(\u0027 \u0027, 1)[0]"},{"line_number":189,"context_line":"        except IndexError:"},{"line_number":190,"context_line":"            LOG.error(\"Failed to get MAC address from port binding %s\","},{"line_number":191,"context_line":"                      row)"}],"source_content_type":"text/x-python","patch_set":18,"id":"4600266a_d9564d1e","line":188,"in_reply_to":"fa925578_52640615","updated":"2026-01-27 17:24:07.000000000","message":"Done","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"}],"neutron/tests/functional/agent/ovn/extensions/test_bgp.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"42df799e5f2ea8614ee0b24d778ce348c0fae611","unresolved":true,"context_lines":[{"line_number":30,"context_line":"RE_OVSDB_CONNECTION_DIR \u003d re.compile("},{"line_number":31,"context_line":"    r\"unix:(?P\u003cdir_path\u003e[^/]*(?:/[^/]+)*)/[^/]+$\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class WaitForPortBindingEvent(event.WaitEvent):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ebe593e4_89d7040f","line":33,"updated":"2026-01-23 08:38:58.000000000","message":"this is not used anywhere in this file","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"eb95bfafaae383576d7f6f34ab458f5d1887e51d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"RE_OVSDB_CONNECTION_DIR \u003d re.compile("},{"line_number":31,"context_line":"    r\"unix:(?P\u003cdir_path\u003e[^/]*(?:/[^/]+)*)/[^/]+$\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class WaitForPortBindingEvent(event.WaitEvent):"}],"source_content_type":"text/x-python","patch_set":14,"id":"13b9466d_226ad5ae","line":33,"in_reply_to":"ebe593e4_89d7040f","updated":"2026-01-26 18:41:11.000000000","message":"Done","commit_id":"e92205371773ebbb3a1fbb690c50f21e7a3bcd98"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e3169e1fe1a5ff5fdf3fda183a7588feba257118","unresolved":true,"context_lines":[{"line_number":26,"context_line":"from neutron.services.bgp import constants"},{"line_number":27,"context_line":"from neutron.tests.functional.agent.ovn.agent import test_ovn_neutron_agent"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"RE_OVSDB_CONNECTION_DIR \u003d re.compile("},{"line_number":30,"context_line":"    r\"unix:(?P\u003cdir_path\u003e[^/]*(?:/[^/]+)*)/[^/]+$\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"55f50656_9340590c","line":29,"updated":"2026-01-27 16:31:01.000000000","message":"Is this used anywhere?","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8b0fde940d29a818cb1c49c57ce38780db83a699","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from neutron.services.bgp import constants"},{"line_number":27,"context_line":"from neutron.tests.functional.agent.ovn.agent import test_ovn_neutron_agent"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"RE_OVSDB_CONNECTION_DIR \u003d re.compile("},{"line_number":30,"context_line":"    r\"unix:(?P\u003cdir_path\u003e[^/]*(?:/[^/]+)*)/[^/]+$\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"77b9e8f0_09c6badc","line":29,"in_reply_to":"32a99977_58d96abb","updated":"2026-01-27 17:33:37.000000000","message":"Done","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"2a06b8cd7d11a72b9ff16177fbab2c05adf92f06","unresolved":true,"context_lines":[{"line_number":26,"context_line":"from neutron.services.bgp import constants"},{"line_number":27,"context_line":"from neutron.tests.functional.agent.ovn.agent import test_ovn_neutron_agent"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"RE_OVSDB_CONNECTION_DIR \u003d re.compile("},{"line_number":30,"context_line":"    r\"unix:(?P\u003cdir_path\u003e[^/]*(?:/[^/]+)*)/[^/]+$\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"32a99977_58d96abb","line":29,"in_reply_to":"55f50656_9340590c","updated":"2026-01-27 17:24:07.000000000","message":"Good catch, it was from previous patch when I split a big patch into multiple small ones and this was overlooked.","commit_id":"cf8c48df4b413a10a01898741f85722b6027aafb"}]}
