With the eventlet timeout block, if the domain isn't running and libvirt pukes on that, the libvirtError isn't swallowed as before and you get the libvirtError up the stack rather than the VirtualInterfaceCreateException.
FWIW I'm setting vif_plugging_is_fatal=False in my deployment but leaving the default 5 minute timeout. This way if it does fail, the reliability is no worse off than it was between nova and neutron in Havana.
I'll push a fix to wrap the libvirtError in that timeout case though.
This is setting making vif_plugging_ is_fatal= False makes it work:
http:// git.openstack. org/cgit/ openstack/ nova/tree/ nova/virt/ libvirt/ driver. py#n3716
Before the timeout / vif plugging event code, any cleanup failures are wrapped and swallowed:
http:// git.openstack. org/cgit/ openstack/ nova/tree/ nova/virt/ libvirt/ driver. py#n3707
With the eventlet timeout block, if the domain isn't running and libvirt pukes on that, the libvirtError isn't swallowed as before and you get the libvirtError up the stack rather than the VirtualInterfac eCreateExceptio n.
FWIW I'm setting vif_plugging_ is_fatal= False in my deployment but leaving the default 5 minute timeout. This way if it does fail, the reliability is no worse off than it was between nova and neutron in Havana.
I'll push a fix to wrap the libvirtError in that timeout case though.