nova/nova/tests
Lee Yarwood 035315b05b libvirt: Add support for stable device rescue
This change introduces a new method of instance rescue to the Libvirt
driver where all original devices remain attached in their original
order while booting from the provided rescue image. This differs from
the original method of instance rescue where only the rescue disk,
original root disk and regenerated config drive would be attached.

This new method is enabled by the presence of either the
hw_rescue_device or hw_rescue_bus image metadata properties on the
provided rescue image. As their name suggests these properties control
the device and bus type used to attach the rescue boot device to the
instance. The properties will allow users to rescue instances using the
emulated equivalents of more traditional bare metal rescue media such as
USB disks or CD-ROM ISOs.

While the rescue disk is attached last to the instance we are able to
boot directly from it using the boot element and order attribute when
defining the disk within the Libvirt domain [1]. This is not however
supported for Xen or LXC virt types and as a result this new method is
not available for these types.

To enable this new mode and building on I9c2d9013d741774e521021913ec0 we
can now provide the full block_device_info for the instance when
building the disk mapping where we now add the rescue boot device. This
now allows instances with attached volumes to be rescued. Boot from
volume instances however are still not supported and blocked within the
compute API. Future work will remove this restriction.

[1] https://libvirt.org/formatdomain.html#elementsNICSBoot

Implements: blueprint virt-rescue-stable-disk-devices
Change-Id: I0e1241ae691afd2af12ef15706c454c05d9f932c
2020-04-09 08:39:35 +01:00
..
functional api: Add microversion for extra spec validation 2020-04-08 13:20:02 +00:00
unit libvirt: Add support for stable device rescue 2020-04-09 08:39:35 +01:00
__init__.py
fixtures.py Delete ARQs for an instance when the instance is deleted. 2020-03-24 22:44:18 -07:00
json_ref.py Transform instance.exists notification 2018-06-05 12:51:30 +00:00