)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"84aad48dc4b37361a393c605c5a2805d6feaf0f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7436a9fd_9b7dbb08","updated":"2026-03-24 15:02:17.000000000","message":"reno missing","commit_id":"36780cb645e26484887f755f8f798c3eb6b0d759"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7050f0fd4fce50e59e90437108fb6787af2cbf96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4ed09d2f_ec93dd59","in_reply_to":"7436a9fd_9b7dbb08","updated":"2026-03-24 15:15:51.000000000","message":"Done","commit_id":"36780cb645e26484887f755f8f798c3eb6b0d759"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5697d743096740aeb40a1b26394d8022b1760414","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"60b94a5e_bc83ed3f","updated":"2026-04-01 16:19:28.000000000","message":"Just nits, looks good otherwise","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"8f96a03e8180e7140a5205a5f2cdf5fa307a68df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f86fd538_fb6d81c4","updated":"2026-04-09 13:46:30.000000000","message":"LGTM!","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"67a0dc37c996b8e5be49f1222a6ba6939b872adc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"389ad3e3_75446a26","updated":"2026-04-09 16:52:30.000000000","message":"recheck git fetch error","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bad1873a0cca7203ac082104666d4dfb84a408a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"85cc40e4_da452b8f","updated":"2026-04-10 07:27:46.000000000","message":"recheck neutron-functional","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8af8ea963965101ccfbbd4fbeedf892e01dc3e6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"cab9c67b_bebad580","updated":"2026-04-10 15:32:02.000000000","message":"recheck neutron-ovs-rally-task","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1e724aba622998feabf2769fc7d67a9a37bd8725","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"aa5cd1a4_dffbdf64","updated":"2026-04-11 09:50:21.000000000","message":"recheck neutron-ovs-tempest-dvr-ha-multinode-full","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e18c0080f7e0d53d77b12a2fa4b3ad842c168f01","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0a103e52_203f8368","updated":"2026-04-07 13:10:53.000000000","message":"recheck neutron-ovs-tempest-multinode-full","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"084ec9e54790a9a8cb91b4b18a61abf182eb5eab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5a3dab1b_d146bfec","updated":"2026-04-07 13:33:27.000000000","message":"recheck neutron-ovs-tempest-multinode-full","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"65d86a830e2e0b8b8918097aa1bbcefca716cc10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7d5e2349_441fcc01","updated":"2026-04-08 05:49:54.000000000","message":"recheck neutron-tempest-plugin-openvswitch","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"128c757cdd10557fcc3e8828423cc939b4f8dc27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"da0b3d64_85dc232e","updated":"2026-04-07 17:04:36.000000000","message":"recheck opendev","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"42fb5480492d329ec479e8673fa7f841a919a8ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5b8703d6_46afed08","updated":"2026-04-11 07:27:55.000000000","message":"recheck openstack-tox-cover","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c003bd3dee9593f92c52b5bdab96f0cd2caedecf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f7262d2f_06f5b289","updated":"2026-04-10 13:18:38.000000000","message":"recheck tempest-integrated-networking","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"79e98c17417ca69ad13fd298ab55e9f3ec7c3419","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"349a679a_f89c3676","updated":"2026-04-10 21:05:18.000000000","message":"recheck zuul","commit_id":"c65c18a6d2259332f4f526d1dc4b9799636a1197"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5697d743096740aeb40a1b26394d8022b1760414","unresolved":true,"context_lines":[{"line_number":1222,"context_line":"        periodic_run_limit\u003dovn_const.MAINTENANCE_TASK_RETRY_LIMIT,"},{"line_number":1223,"context_line":"        spacing\u003dovn_const.MAINTENANCE_ONE_RUN_TASK_SPACING,"},{"line_number":1224,"context_line":"        run_immediately\u003dTrue)"},{"line_number":1225,"context_line":"    def update_vip_parent_hostname(self):"},{"line_number":1226,"context_line":"        \"\"\"Virtual ports should have parent_hostname, NOT portbinding.host\"\"\""},{"line_number":1227,"context_line":"        # 1. List all virtual ports with \"external_ids:neutron:host_id\""},{"line_number":1228,"context_line":"        lsp_with_host_id \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"34cf28d6_473a33e5","line":1225,"range":{"start_line":1225,"start_character":15,"end_line":1225,"end_character":18},"updated":"2026-04-01 16:19:28.000000000","message":"nit: s/virtual_port","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f297812d8f813cdd20ab87f30d5b4de911c3c5a7","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"        periodic_run_limit\u003dovn_const.MAINTENANCE_TASK_RETRY_LIMIT,"},{"line_number":1223,"context_line":"        spacing\u003dovn_const.MAINTENANCE_ONE_RUN_TASK_SPACING,"},{"line_number":1224,"context_line":"        run_immediately\u003dTrue)"},{"line_number":1225,"context_line":"    def update_vip_parent_hostname(self):"},{"line_number":1226,"context_line":"        \"\"\"Virtual ports should have parent_hostname, NOT portbinding.host\"\"\""},{"line_number":1227,"context_line":"        # 1. List all virtual ports with \"external_ids:neutron:host_id\""},{"line_number":1228,"context_line":"        lsp_with_host_id \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"5ed5fc89_170ac211","line":1225,"range":{"start_line":1225,"start_character":15,"end_line":1225,"end_character":18},"in_reply_to":"34cf28d6_473a33e5","updated":"2026-04-07 09:16:56.000000000","message":"Done","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5697d743096740aeb40a1b26394d8022b1760414","unresolved":true,"context_lines":[{"line_number":1229,"context_line":"        for lsp in self._nb_idl.lsp_list().execute(check_error\u003dTrue):"},{"line_number":1230,"context_line":"            host_id \u003d lsp.external_ids.get(ovn_const.OVN_HOST_ID_EXT_ID_KEY)"},{"line_number":1231,"context_line":"            if host_id and lsp.type \u003d\u003d ovn_const.LSP_TYPE_VIRTUAL:"},{"line_number":1232,"context_line":"                lsp_with_host_id.append(lsp)"},{"line_number":1233,"context_line":""},{"line_number":1234,"context_line":"        # 2. For all these LSPs, **if present** during this second loop,"},{"line_number":1235,"context_line":"        # (2.1) update the LSP.external_ids dictionary, (2.2) remove the"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf080715_b093fc6a","line":1232,"updated":"2026-04-01 16:19:28.000000000","message":"nit: I\u0027ll only mention since I was fixing some mccabe complexity issues in another patch, but it prefers this ordering with less indentation:\n\nif lsp.type !\u003d ovn_const.LSP_TYPE_VIRTUAL:\n    continue\nif lsp.external_ids.get(ovn_const.OVN_HOST_ID_EXT_ID_KEY):\n    lsp_with_host_id.append(lsp)\n\nJust a nit...","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f297812d8f813cdd20ab87f30d5b4de911c3c5a7","unresolved":false,"context_lines":[{"line_number":1229,"context_line":"        for lsp in self._nb_idl.lsp_list().execute(check_error\u003dTrue):"},{"line_number":1230,"context_line":"            host_id \u003d lsp.external_ids.get(ovn_const.OVN_HOST_ID_EXT_ID_KEY)"},{"line_number":1231,"context_line":"            if host_id and lsp.type \u003d\u003d ovn_const.LSP_TYPE_VIRTUAL:"},{"line_number":1232,"context_line":"                lsp_with_host_id.append(lsp)"},{"line_number":1233,"context_line":""},{"line_number":1234,"context_line":"        # 2. For all these LSPs, **if present** during this second loop,"},{"line_number":1235,"context_line":"        # (2.1) update the LSP.external_ids dictionary, (2.2) remove the"}],"source_content_type":"text/x-python","patch_set":6,"id":"5e623f1b_bd600ed7","line":1232,"in_reply_to":"bf080715_b093fc6a","updated":"2026-04-07 09:16:56.000000000","message":"Done","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"}],"neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_maintenance.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5697d743096740aeb40a1b26394d8022b1760414","unresolved":true,"context_lines":[{"line_number":1632,"context_line":"        self.assertIsNotNone(acl_v6_after)"},{"line_number":1633,"context_line":"        self.assertIn(ag_as_name_v6, acl_v6_after.match)"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def test_update_vip_parent_hostname(self):"},{"line_number":1636,"context_line":"        net \u003d self._create_network(uuidutils.generate_uuid())"},{"line_number":1637,"context_line":"        self._create_subnet(uuidutils.generate_uuid(), net[\u0027id\u0027])"},{"line_number":1638,"context_line":"        port \u003d self._create_port(uuidutils.generate_uuid(), net[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"b59e4f0d_33c85bda","line":1635,"range":{"start_line":1635,"start_character":20,"end_line":1635,"end_character":23},"updated":"2026-04-01 16:19:28.000000000","message":"nit: s/virtual_port","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f297812d8f813cdd20ab87f30d5b4de911c3c5a7","unresolved":false,"context_lines":[{"line_number":1632,"context_line":"        self.assertIsNotNone(acl_v6_after)"},{"line_number":1633,"context_line":"        self.assertIn(ag_as_name_v6, acl_v6_after.match)"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def test_update_vip_parent_hostname(self):"},{"line_number":1636,"context_line":"        net \u003d self._create_network(uuidutils.generate_uuid())"},{"line_number":1637,"context_line":"        self._create_subnet(uuidutils.generate_uuid(), net[\u0027id\u0027])"},{"line_number":1638,"context_line":"        port \u003d self._create_port(uuidutils.generate_uuid(), net[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"90d9ecb6_ce68e5d9","line":1635,"range":{"start_line":1635,"start_character":20,"end_line":1635,"end_character":23},"in_reply_to":"b59e4f0d_33c85bda","updated":"2026-04-07 09:16:56.000000000","message":"Done","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5697d743096740aeb40a1b26394d8022b1760414","unresolved":true,"context_lines":[{"line_number":1649,"context_line":""},{"line_number":1650,"context_line":"        self.assertRaises("},{"line_number":1651,"context_line":"            periodics.NeverAgain,"},{"line_number":1652,"context_line":"            self.maint.update_vip_parent_hostname)"},{"line_number":1653,"context_line":""},{"line_number":1654,"context_line":"        # Check the LSP.external_ids."},{"line_number":1655,"context_line":"        lsp \u003d self.nb_api.lookup(\u0027Logical_Switch_Port\u0027, port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"8cbcd9ad_58a15e3e","line":1652,"range":{"start_line":1652,"start_character":30,"end_line":1652,"end_character":33},"updated":"2026-04-01 16:19:28.000000000","message":"If you change above and code will need to change this too","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f297812d8f813cdd20ab87f30d5b4de911c3c5a7","unresolved":false,"context_lines":[{"line_number":1649,"context_line":""},{"line_number":1650,"context_line":"        self.assertRaises("},{"line_number":1651,"context_line":"            periodics.NeverAgain,"},{"line_number":1652,"context_line":"            self.maint.update_vip_parent_hostname)"},{"line_number":1653,"context_line":""},{"line_number":1654,"context_line":"        # Check the LSP.external_ids."},{"line_number":1655,"context_line":"        lsp \u003d self.nb_api.lookup(\u0027Logical_Switch_Port\u0027, port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"075fdb42_ee462759","line":1652,"range":{"start_line":1652,"start_character":30,"end_line":1652,"end_character":33},"in_reply_to":"8cbcd9ad_58a15e3e","updated":"2026-04-07 09:16:56.000000000","message":"Done","commit_id":"b403616e26d6130a450e0238f0d0e749c4720ec6"}]}
