)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"be8f577769dd3aa587e2002438895b4eec04a99b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ac8238de_54da85f1","updated":"2023-09-27 08:28:29.000000000","message":"Good catch.\n\nOnce merged this fix, we need to backport it up to Zed.","commit_id":"c9862452b85fc404e5878757dfaa900b0135d69d"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4a3c941322a1580e6db09230d68e637a34a9af51","unresolved":true,"context_lines":[{"line_number":2084,"context_line":"        with db_api.CONTEXT_READER.using(context):"},{"line_number":2085,"context_line":"            try:"},{"line_number":2086,"context_line":"                port_db \u003d self._get_port(context, port_id)"},{"line_number":2087,"context_line":"                port \u003d self._make_port_dict(port_db)"},{"line_number":2088,"context_line":"            except exc.PortNotFound:"},{"line_number":2089,"context_line":"                LOG.debug(\"The port \u0027%s\u0027 was deleted\", port_id)"},{"line_number":2090,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":2,"id":"10dd7e6c_2bdf8c0c","line":2087,"updated":"2023-09-26 20:31:33.000000000","message":"Think you can just have a single call here as you don\u0027t use port_db anywhere.\n\nport \u003d self.get_port(context, port_id)","commit_id":"edd06fc8b7e6818c52b0bf9b627cec529df0c21d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"be8f577769dd3aa587e2002438895b4eec04a99b","unresolved":true,"context_lines":[{"line_number":2076,"context_line":"        host information to reflect where the associated port that is sending"},{"line_number":2077,"context_line":"        or receiving traffic, using the VIP address, is hosted."},{"line_number":2078,"context_line":"        \"\"\""},{"line_number":2079,"context_line":"        # NOTE(mnaser): This function is called from OVN only and it can"},{"line_number":2080,"context_line":"        #               sometimes be called for a trunk subport, so we"},{"line_number":2081,"context_line":"        #               should exit early if it\u0027s a trunk subport."},{"line_number":2082,"context_line":"        #"}],"source_content_type":"text/x-python","patch_set":4,"id":"b2bbdf1a_dedabe86","line":2079,"range":{"start_line":2079,"start_character":8,"end_line":2079,"end_character":60},"updated":"2023-09-27 08:28:29.000000000","message":"Good catch and good debugging. However this check should be done in the ``PortBindingUpdateVirtualPortsEvent.match_fn`` method, more in particular in the \"if event \u003d\u003d self.ROW_DELETE\" branch [1].\n\nThis condition, as you found, is being triggered for all port types. We need to return True in this branch only if the port.type\u003d\u003dvirtual:\n```\n  if event \u003d\u003d self.ROW_DELETE:\n      # The port binding has been deleted, delete the host ID (if the\n      # port was not deleted before and the port type is virtual).\n      return row.type \u003d\u003d ovn_const.LSP_TYPE_VIRTUAL\n```\n\n[1]https://github.com/openstack/neutron/blob/61ac046cf7ed81a7502ddfdfb6fa785f4184554f/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py#L557","commit_id":"c9862452b85fc404e5878757dfaa900b0135d69d"}],"neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"ca1ad663aad58ef0eb410c8d4ce88af6f2110f65","unresolved":true,"context_lines":[{"line_number":360,"context_line":"        # and the corresponding \"virtual-parents\"."},{"line_number":361,"context_line":"        self._check_port_binding_type(vip[\u0027id\u0027], ovn_const.LSP_TYPE_VIRTUAL)"},{"line_number":362,"context_line":"        self._check_port_virtual_parents(vip[\u0027id\u0027], port[\u0027id\u0027])"},{"line_number":363,"context_line":"        n_utils.wait_until_true(lambda: mock_update_vip_host.called,"},{"line_number":364,"context_line":"                                timeout\u003d10)"},{"line_number":365,"context_line":"        # The \"Port_Binding\" has been deleted. Then the \"Port_Binding\" register"},{"line_number":366,"context_line":"        # is created again without virtual_parents, but this event doesn\u0027t"}],"source_content_type":"text/x-python","patch_set":6,"id":"b46ef958_c84e4a52","line":363,"updated":"2023-09-27 16:24:55.000000000","message":"this seems to have failed","commit_id":"1195963b426e4e95ed5de026caf5b0e8448add1a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9650dd60bf1f67b79834da8c56e59ac137dbf84a","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        # and the corresponding \"virtual-parents\"."},{"line_number":361,"context_line":"        self._check_port_binding_type(vip[\u0027id\u0027], ovn_const.LSP_TYPE_VIRTUAL)"},{"line_number":362,"context_line":"        self._check_port_virtual_parents(vip[\u0027id\u0027], port[\u0027id\u0027])"},{"line_number":363,"context_line":"        n_utils.wait_until_true(lambda: mock_update_vip_host.called,"},{"line_number":364,"context_line":"                                timeout\u003d10)"},{"line_number":365,"context_line":"        # The \"Port_Binding\" has been deleted. Then the \"Port_Binding\" register"},{"line_number":366,"context_line":"        # is created again without virtual_parents, but this event doesn\u0027t"}],"source_content_type":"text/x-python","patch_set":6,"id":"2f1e56e7_927eeaf8","line":363,"in_reply_to":"b46ef958_c84e4a52","updated":"2023-09-27 16:39:03.000000000","message":"With the new OVN code, the \"port_binding\" is deleted for the VIP port before being marked as \"virtual\". So this check doesn\u0027t apply now.","commit_id":"1195963b426e4e95ed5de026caf5b0e8448add1a"}]}
