nova/nova/virt/libvirt
Mohammed Naser ed3e27afb4 Revert "Refine waiting for vif plug events during _hard_reboot"
This reverts commit aaf37a26d6.

This gets us back to Ib0cf5d55750f13d0499a570f14024dca551ed4d4
which was meant to address an issue introduced
by Id188d48609f3d22d14e16c7f6114291d547a8986.

So we essentially had three changes:

1. Hard reboot would blow away volumes and vifs and then wait for the
   vifs to be plugged; this caused a problem for some vif types (
   linuxbridge was reported) because the event never came and we
   timed out.

2. To workaround that, a second change was made to simply not wait for
   vif plugging events.

3. Since #2 was a bit heavy-handed for a problem that didn't impact
   openvswitch, another change was made to only wait for non-bridge vif
   types, so we'd wait for OVS.

But it turns out that opendaylight is an OVS vif type and doesn't send
events for plugging the vif, only for binding the port (and we don't
re-bind the port during reboot). There is also a report of this being a
problem for other types of ports, see
If209f77cff2de00f694b01b2507c633ec3882c82.

So rather than try to special-case every possible vif type that could
be impacted by this, we are simply reverting the change so we no longer
wait for vif plugged events during hard reboot.

Note that if we went back to Id188d48609f3d22d14e16c7f6114291d547a8986
and tweaked that to not unplug/plug the vifs we wouldn't have this
problem either, and that change was really meant to deal with an
encrypted volume issue on reboot. But changing that logic is out of the
scope of this change. Alternatively, we could re-bind the port during
reboot but that could have other implications, or neutron could put
something into the port details telling us which vifs will send events
and which won't, but again that's all outside of the scope of this
patch.

Change-Id: Ib3f10706a7191c58909ec1938042ce338df4d499
Closes-Bug: #1755890
2018-03-14 21:07:17 +00:00
..
storage Move shred to privsep. 2017-10-23 09:36:28 +11:00
volume libvirt: fix native luks encryption failure to find volume_id 2018-02-02 15:00:30 -05:00
__init__.py Remove vi modelines 2014-02-03 14:19:44 +00:00
blockinfo.py Rename block_device_info_get_root 2018-01-11 20:46:13 +00:00
compat.py Remove translation of log messages 2017-06-13 11:20:28 +07:00
config.py Make sure that we have usable input for graphical console 2018-02-06 10:31:19 +01:00
designer.py libvirt: conditionally set script path for ethernet vif types 2017-03-21 14:12:39 -04:00
driver.py Revert "Refine waiting for vif plug events during _hard_reboot" 2018-03-14 21:07:17 +00:00
firewall.py Replaces uuid.uuid4 with uuidutils.generate_uuid() 2017-07-25 10:45:03 +05:30
guest.py Remove unnecessary execute permissions in files 2018-01-15 23:53:01 +09:00
host.py Encode libvirt domain XML in UTF-8 2018-02-08 15:45:59 -05:00
imagebackend.py Move ploop commands to privsep. 2017-09-28 07:29:51 +10:00
imagecache.py Move the dac_admin privsep code to a new location. 2017-09-18 23:14:11 +10:00
instancejobtracker.py Remove translation of log messages 2017-06-13 11:20:28 +07:00
migration.py libvirt: QEMU native LUKS decryption for encrypted volumes 2018-01-23 10:47:05 +00:00
utils.py Move the idmapshift binary into privsep. 2017-10-24 18:50:23 +11:00
vif.py Move contrail vif plugging to privsep. 2017-11-02 12:09:27 +11:00