)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a4ebf17fc4cae0d4f08c5722277f9a05211666a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1e75ce13_ecc7d9cd","updated":"2026-07-08 14:44:44.000000000","message":"recheck. Conflicting requirements cause grenade job to fail","commit_id":"6302a207d4e6d51de24bd3188e385c0281996de5"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"857f4ded2eac2acd8b5014cd33f6a44e48a2c929","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4f761ab6_03ad0c19","updated":"2026-08-14 12:42:58.000000000","message":"looks ok now","commit_id":"5631c6e93ee5bdf5cba29c1624bf9ed967cb0d12"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"eb72d1a859bfa366573a1e7b5a928bd8b4b20a14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"27fcc827_88ff5648","updated":"2026-09-03 13:19:25.000000000","message":"Just one nit","commit_id":"3ddee7e7fa8027df95c3b982668c3a6a1d299a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"18feb87bdc87dc8ef0f40f3555a29d3d1798d1aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"82607c6f_abf86d0c","updated":"2026-09-08 18:52:29.000000000","message":"I had to rebase, so I addressed Brian\u0027s nit","commit_id":"339332bfb5e87c073727968fb9de353ac4e87552"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"19a8895b0e638ed5a76de5d3836c6770987bea63","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f849db0e_bc6d2ee9","updated":"2026-09-09 16:44:31.000000000","message":"recheck TimeoutException","commit_id":"cff19cae21a4a9c5aeaf7c61f30a5c72eb1276fe"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e992c40d8355b36b27e7ceb51036e88bdfd4539b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"648cbe1e_0f68b2c8","updated":"2026-09-08 23:57:52.000000000","message":"recheck. neutron-functional \nneutron.tests.functional.services.l3_router.test_l3_dvr_ha_router_plugin.L3DvrHATestCase.test_delete_floating_ip_agent_notification unrelated to change","commit_id":"cff19cae21a4a9c5aeaf7c61f30a5c72eb1276fe"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"92d6d9f6e9dc482484e7e77452d9310bf58c668d","unresolved":true,"context_lines":[{"line_number":405,"context_line":"            LOG.warning(\u0027Skip fixing segment %(seg_uuid)s. Segment does not \u0027"},{"line_number":406,"context_line":"                        \u0027exist in Neutron database anymore\u0027,"},{"line_number":407,"context_line":"                        {\u0027seg_uuid\u0027: row.resource_uuid})"},{"line_number":408,"context_line":"            return"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        # Try to read the corresponding logical switch"},{"line_number":411,"context_line":"        segment_ls_name \u003d utils.ovn_name(segment[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5380eabf_be82e777","line":408,"range":{"start_line":408,"start_character":12,"end_line":408,"end_character":18},"updated":"2026-07-20 10:35:32.000000000","message":"Here it would be needed to delete the LS too. If we are expecting the segment but it is not in the Neutron SQL DB, we must delete the LS associated to this segment.","commit_id":"6302a207d4e6d51de24bd3188e385c0281996de5"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"6d41d3eef0d05bb873171d081564c4ae66e81b75","unresolved":true,"context_lines":[{"line_number":405,"context_line":"            LOG.warning(\u0027Skip fixing segment %(seg_uuid)s. Segment does not \u0027"},{"line_number":406,"context_line":"                        \u0027exist in Neutron database anymore\u0027,"},{"line_number":407,"context_line":"                        {\u0027seg_uuid\u0027: row.resource_uuid})"},{"line_number":408,"context_line":"            return"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        # Try to read the corresponding logical switch"},{"line_number":411,"context_line":"        segment_ls_name \u003d utils.ovn_name(segment[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"0d59222a_f798283a","line":408,"range":{"start_line":408,"start_character":12,"end_line":408,"end_character":18},"in_reply_to":"5380eabf_be82e777","updated":"2026-08-10 23:21:09.000000000","message":"Good catch. Fixed","commit_id":"6302a207d4e6d51de24bd3188e385c0281996de5"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"92d6d9f6e9dc482484e7e77452d9310bf58c668d","unresolved":true,"context_lines":[{"line_number":441,"context_line":"                self._ovn_client.delete_provnet_port("},{"line_number":442,"context_line":"                    segment[\u0027network_id\u0027], segment)"},{"line_number":443,"context_line":"            else:"},{"line_number":444,"context_line":"                # Segment doesn\u0027t exist in DB but logical switch does,"},{"line_number":445,"context_line":"                # force delete the logical switch"},{"line_number":446,"context_line":"                self._nb_idl.ls_del(segment_ls_name).execute(check_error\u003dTrue)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def _log_maintenance_inconsistencies(self, create_update_inconsistencies,"},{"line_number":449,"context_line":"                                         delete_inconsistencies):"}],"source_content_type":"text/x-python","patch_set":2,"id":"d623a523_1227897c","line":446,"range":{"start_line":444,"start_character":16,"end_line":446,"end_character":78},"updated":"2026-07-20 10:35:32.000000000","message":"This path doesn\u0027t delete the segment revision number","commit_id":"6302a207d4e6d51de24bd3188e385c0281996de5"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"6d41d3eef0d05bb873171d081564c4ae66e81b75","unresolved":true,"context_lines":[{"line_number":441,"context_line":"                self._ovn_client.delete_provnet_port("},{"line_number":442,"context_line":"                    segment[\u0027network_id\u0027], segment)"},{"line_number":443,"context_line":"            else:"},{"line_number":444,"context_line":"                # Segment doesn\u0027t exist in DB but logical switch does,"},{"line_number":445,"context_line":"                # force delete the logical switch"},{"line_number":446,"context_line":"                self._nb_idl.ls_del(segment_ls_name).execute(check_error\u003dTrue)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def _log_maintenance_inconsistencies(self, create_update_inconsistencies,"},{"line_number":449,"context_line":"                                         delete_inconsistencies):"}],"source_content_type":"text/x-python","patch_set":2,"id":"d250f1ec_a33c1da0","line":446,"range":{"start_line":444,"start_character":16,"end_line":446,"end_character":78},"in_reply_to":"d623a523_1227897c","updated":"2026-08-10 23:21:09.000000000","message":"Good catch. Fixed","commit_id":"6302a207d4e6d51de24bd3188e385c0281996de5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"eb72d1a859bfa366573a1e7b5a928bd8b4b20a14","unresolved":true,"context_lines":[{"line_number":420,"context_line":"            return"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        # Try to read the corresponding logical switch"},{"line_number":423,"context_line":"        ovn_ls \u003d self._nb_idl.get_lswitch(segment_ls_name)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if not ovn_ls:"},{"line_number":426,"context_line":"            # Logical switch doesn\u0027t exist, create it"}],"source_content_type":"text/x-python","patch_set":4,"id":"807a9a58_df30aa5b","line":423,"updated":"2026-09-03 13:19:25.000000000","message":"nit: this could be right after L409, then you could remove L414","commit_id":"3ddee7e7fa8027df95c3b982668c3a6a1d299a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"18feb87bdc87dc8ef0f40f3555a29d3d1798d1aa","unresolved":true,"context_lines":[{"line_number":420,"context_line":"            return"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        # Try to read the corresponding logical switch"},{"line_number":423,"context_line":"        ovn_ls \u003d self._nb_idl.get_lswitch(segment_ls_name)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if not ovn_ls:"},{"line_number":426,"context_line":"            # Logical switch doesn\u0027t exist, create it"}],"source_content_type":"text/x-python","patch_set":4,"id":"8a99c28e_f8061588","line":423,"in_reply_to":"807a9a58_df30aa5b","updated":"2026-09-08 18:52:29.000000000","message":"Done","commit_id":"3ddee7e7fa8027df95c3b982668c3a6a1d299a66"}]}
