nova/nova/conf
Lee Yarwood 8c678ae572 libvirt: Add workaround to cleanup instance dir when using rbd
At present all virt drivers provide a cleanup method that takes a single
destroy_disks boolean to indicate when the underlying storage of an
instance should be destroyed.

When cleaning up after an evacuation or revert resize the value of
destroy_disks is determined by the compute layer calling down both into
the check_instance_shared_storage_local method of the local virt driver
and remote check_instance_shared_storage method of the virt driver on
the host now running the instance.

For the Libvirt driver the initial local call will return None when
using the shared block RBD imagebackend as it is assumed all instance
storage is shared resulting in destroy_disks always being False when
cleaning up. This behaviour is wrong as the instance disks are stored
separately to the instance directory that still needs to be cleaned up
on the host. Additionally this directory could also be shared
independently of the disks on a NFS share for example and would need to
also be checked before removal.

This change introduces a backportable workaround configurable for the
Libvirt driver with which operators can ensure that the instance
directory is always removed during cleanup when using the RBD
imagebackend. When enabling this workaround operators will need to
ensure that the instance directories are not shared between computes.

Future work will allow for the removal of this workaround by separating
the shared storage checks from the compute to virt layers between the
actual instance disks and any additional storage required by the
specific virt backend.

Related-Bug: #1761062
Partial-Bug: #1414895
Change-Id: I8fd6b9f857a1c4919c3365951e2652d2d477df77
(cherry picked from commit d6c1f6a103)
2019-01-15 15:53:48 +00:00
..
__init__.py z/VM Driver: Initial change set of z/VM driver 2018-07-16 11:35:10 +08:00
api.py Merge "Remove support for /os-fping REST API" 2018-06-06 21:00:58 +00:00
availability_zone.py Fix default_availability_zone docs 2017-05-31 14:24:07 +01:00
base.py Remove deprecated monkey_patch config options 2018-05-16 11:40:41 -04:00
cache.py conf: Make list->dict conversion more specific 2016-09-14 12:10:29 +00:00
cells.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
cinder.py Fix bug case by none token context 2018-01-24 20:53:50 -05:00
compute.py libvirt: Add workaround to cleanup instance dir when using rbd 2019-01-15 15:53:48 +00:00
conductor.py conf: Remove '[conductor] topic' opt 2018-03-12 13:26:08 +00:00
configdrive.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
console.py conf: remove *_topic config opts 2017-07-17 21:27:02 -07:00
consoleauth.py Convert websocketproxy to use db for token validation 2018-05-03 09:57:56 -04:00
database.py Fix the duplicated config options of api_database and placement_database 2018-06-26 20:08:44 +08:00
devices.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
ephemeral_storage.py Parse algorithm from cipher for ephemeral disk encryption 2017-04-26 11:19:43 -04:00
flavors.py Add deprecated_since parameter 2016-09-21 17:37:12 +01:00
glance.py Fix typo in enable_certificate_validation config option help 2018-06-04 14:50:45 -04:00
guestfs.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
hyperv.py conf: hyperv: fix a comment typo 2018-01-05 15:30:35 +08:00
ironic.py nova.utils.get_ksa_adapter() 2017-10-09 08:24:40 -05:00
key_manager.py Add secret=true to fixed_key configuration parameter 2018-12-14 09:19:40 +00:00
keystone.py Use ksa adapter for keystone conf & requests 2017-11-30 22:33:01 +00:00
libvirt.py libvirt: Add workaround to cleanup instance dir when using rbd 2019-01-15 15:53:48 +00:00
mks.py Use URIOpt 2017-07-18 00:38:24 +00:00
netconf.py conf: Move additional nova-net opts to 'network' 2017-10-26 14:01:18 +00:00
network.py conf: Deprecate 'network_manager' 2018-06-22 15:04:48 +01:00
neutron.py conf: Add '[neutron] physnets' and related options 2018-07-24 15:33:49 +01:00
notifications.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
novnc.py Conf options: updated flags for novnc 2016-08-01 15:00:07 -05:00
opts.py conf: Make list->dict conversion more specific 2016-09-14 12:10:29 +00:00
osapi_v21.py Remove config opts for extension black/white list 2017-04-06 08:47:06 +00:00
paths.py Make nova build reproducible 2018-03-09 13:12:39 +01:00
pci.py conf: Correct documentation for '[pci] passthrough_whitelist' 2018-06-28 16:09:18 +01:00
placement.py make incomplete_consumer_project_id a valid UUID 2018-07-09 19:15:46 +01:00
powervm.py Powervm configuration cleanup 2018-06-13 11:48:30 -05:00
quota.py Restrict CONF.quota.driver to DB and noop quota drivers 2018-06-01 15:44:52 +00:00
rdp.py Use URIOpt 2017-07-18 00:38:24 +00:00
remote_debug.py Use HostAddressOpt for opts that accept IP and hostnames 2017-04-03 16:40:36 +05:30
rpc.py Use long_rpc_timeout in select_destinations RPC call 2018-11-26 12:52:39 -05:00
scheduler.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
serial_console.py Fix nova-serialproxy when registering cli options 2016-12-07 08:51:28 -05:00
service.py conf: Deprecate 'network_manager' 2018-06-22 15:04:48 +01:00
service_token.py Service token is not experimental 2017-11-21 17:36:32 +00:00
servicegroup.py Improve consistency in servicegroup opts 2016-07-28 13:43:51 -05:00
spice.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
upgrade_levels.py Deprecate upgrade_levels options for deprecated/removed services 2018-08-03 15:53:11 +00:00
utils.py Get auth from context for glance endpoint 2017-11-21 10:26:42 -06:00
vendordata.py Use a service account to make vendordata requests. 2017-01-26 13:39:46 +00:00
vmware.py conf: Deprecate 'keymap' options 2018-03-07 10:18:23 +00:00
vnc.py conf: Deprecate 'keymap' options 2018-03-07 10:18:23 +00:00
workarounds.py libvirt: Add workaround to cleanup instance dir when using rbd 2019-01-15 15:53:48 +00:00
wsgi.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
xenserver.py Merge "xenapi: drop deprecated vif_driver config option" 2018-06-26 16:14:54 +00:00
xvp.py flake8: Specify 'nova' as name of app 2017-03-16 13:48:51 -07:00
zvm.py z/VM Driver: Spawn and destroy function of z/VM driver 2018-07-16 11:35:11 +08:00