)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"5605d3f89cb4bc140d7d3dc6cb93e4769ed726d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e6682b76_e62fd510","updated":"2026-04-15 16:27:59.000000000","message":"The failure in the functional tests is somehow related","commit_id":"2774d12ea81cbb13dd23c5423ddba4629e280755"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"06e1580cd237b4d5d03d519353cd1a51282baf88","unresolved":true,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"class LogicalSwitchPortEvent(row_event.RowEvent):"},{"line_number":517,"context_line":"    def match_fn(self, event, row, old\u003dNone):"},{"line_number":518,"context_line":"        return ovn_const.OVN_PORT_NAME_EXT_ID_KEY in row.external_ids"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e688d157_c073a2b9","line":517,"range":{"start_line":517,"start_character":4,"end_line":517,"end_character":45},"updated":"2026-04-17 09:53:45.000000000","message":"nit: just in case you change any of the child classes to include a filter in the event class, you should also call the `super.match_fn()` method here too.","commit_id":"52d09a155e9f40d393d67130e3aef59ff59dfd86"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b5c1d8934d041c3f62ee5b6dbb53700f7a0ed515","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"class LogicalSwitchPortEvent(row_event.RowEvent):"},{"line_number":517,"context_line":"    def match_fn(self, event, row, old\u003dNone):"},{"line_number":518,"context_line":"        return ovn_const.OVN_PORT_NAME_EXT_ID_KEY in row.external_ids"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a241c6b_d3aedcde","line":517,"range":{"start_line":517,"start_character":4,"end_line":517,"end_character":45},"in_reply_to":"e688d157_c073a2b9","updated":"2026-04-17 12:39:48.000000000","message":"True","commit_id":"52d09a155e9f40d393d67130e3aef59ff59dfd86"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d5baea3de5fc6b5f57026063bd8750c2d3a5181b","unresolved":true,"context_lines":[{"line_number":505,"context_line":"                    \u0027external_ids\u0027: [\"map\", []]}"},{"line_number":506,"context_line":"        self._test_lsp_helper(\u0027create\u0027, row_data)"},{"line_number":507,"context_line":"        self.assertFalse(self.mech_driver.set_port_status_up.called)"},{"line_number":508,"context_line":"        self.assertFalse(self.mech_driver.set_port_status_down.called)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def test_lsp_up_update_event(self):"},{"line_number":511,"context_line":"        new_row_json \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"e9977c45_30f75ac7","line":508,"updated":"2026-04-28 16:40:59.000000000","message":"I guess these could have been something like\n\nself.mech_driver.set_port_status_up.assert_not_called()\n\nBut they follow what was used in existing tests, in the end it\u0027s all the same, so can leave as-is.","commit_id":"57bb384ca294413791e694dd9bf77d51630d8023"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"03a61a3eb4d39413570f4284321a65d8c8b61d5c","unresolved":false,"context_lines":[{"line_number":505,"context_line":"                    \u0027external_ids\u0027: [\"map\", []]}"},{"line_number":506,"context_line":"        self._test_lsp_helper(\u0027create\u0027, row_data)"},{"line_number":507,"context_line":"        self.assertFalse(self.mech_driver.set_port_status_up.called)"},{"line_number":508,"context_line":"        self.assertFalse(self.mech_driver.set_port_status_down.called)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def test_lsp_up_update_event(self):"},{"line_number":511,"context_line":"        new_row_json \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"448af9e8_888af728","line":508,"in_reply_to":"e9977c45_30f75ac7","updated":"2026-04-29 15:20:23.000000000","message":"AI is really good in replicating bad coding habits.","commit_id":"57bb384ca294413791e694dd9bf77d51630d8023"}]}
