The adhoc approach is to remove the transaction from db_plugin.delete_ports().
This removes long transaction even when plugin.delete_port talks with external systems.
At now I believe it works because only release_dhcp_port() in db/dhcp_rpc_base which handle dhcp-agent RPC and dhcp-port will be cleaned up in delete_network even if some dhcp ports are not deleted successfully in release_dhcp_port.
Better fix is to support bulk operations in plugin.delete_ports().
It will provide a more consistent way to handle multiple resources at one operation.
The adhoc approach is to remove the transaction from db_plugin. delete_ ports() .
This removes long transaction even when plugin.delete_port talks with external systems.
At now I believe it works because only release_dhcp_port() in db/dhcp_rpc_base which handle dhcp-agent RPC and dhcp-port will be cleaned up in delete_network even if some dhcp ports are not deleted successfully in release_dhcp_port.
Better fix is to support bulk operations in plugin. delete_ ports() .
It will provide a more consistent way to handle multiple resources at one operation.
Thought?