OpenStack Compute (Nova)
Go to file
Lee Yarwood c6c3483a41 compute: Don't delete the original attachment during pre LM rollback
I0bfb11296430dfffe9b091ae7c3a793617bd9d0d introduced support for live
migration with cinderv3 volume attachments during Queens. This initial
support handled failures in pre_live_migration directly by removing any
attachments created on the destination and reverting to the original
attachment ids before re-raising the caught exception to the source
compute. It also added rollback code within the main
_rollback_live_migration method but missed that this would also be
called during a pre_live_migration rollback.

As a result after a failure in pre_live_migration
_rollback_live_migration will attempt to delete the source host volume
attachments referenced by the bdm before updating the bdms with the now
non-existent attachment ids, leaving the volumes in an `available` state
in Cinder as they have no attachment records associated with them
anymore.

This change aims to resolve this within _rollback_volume_bdms by
ensuring that the current and original attachment_ids are not equal
before requesting that the current attachment referenced by the bdm is
deleted. When called after a failure in pre_live_migration this should
result in no attempt being made to remove the original source host
attachments from Cinder.

Note that the following changes muddy the waters slightly here but
introduced no actual changes to the logic within
_rollback_live_migration:

* I0f3ab6604d8b79bdb75cf67571e359cfecc039d8 reworked some of the error
  handling in Rocky but isn't the source of the issue here.

* Ibe9215c07a1ee00e0e121c69bcf7ee1b1b80fae0 reworked
  _rollback_live_migration to use the provided source_bdms.

* I6bc73e8c8f98d9955f33f309beb8a7c56981b553 then refactored
  _rollback_live_migration, moving the logic into a self contained
  _rollback_volume_bdms method.

Closes-Bug: #1889108
Change-Id: I9edb36c4df1cc0d8b529e669f06540de71766085
(cherry picked from commit 2102f1834a)
(cherry picked from commit 034b2fa8fe)
2020-08-27 20:07:02 +01:00
api-guide/source Allow resizing server with port resource request 2019-09-12 10:35:22 -04:00
api-ref/source Block deleting compute services with in-progress migrations 2019-11-15 09:16:16 -05:00
devstack Merge "Find instance in another cell during floating IP re-association" 2019-09-13 15:19:55 +00:00
doc Add admin doc information about image cache resource accounting 2020-05-25 13:25:33 +02:00
etc/nova Remove an unused file and a related description 2019-09-13 10:33:32 +09:00
gate nova-live-migration: Ensure subnode is fenced during evacuation testing 2020-03-23 10:21:26 +00:00
nova compute: Don't delete the original attachment during pre LM rollback 2020-08-27 20:07:02 +01:00
playbooks Merge "Convert nova-lvm job to zuul v3" 2019-09-04 20:08:05 +00:00
releasenotes libvirt: Mark e1000e VIF as supported 2020-07-13 10:40:46 +00:00
roles/run-post-test-hook Convert nova-next to a zuul v3 job 2019-07-23 11:32:35 -04:00
tools Fix cherry-pick check for merge patch 2020-07-03 10:23:28 +02:00
.coveragerc Remove nova/openstack/* from .coveragerc 2016-10-12 16:20:49 -04:00
.gitignore Delete the placement code 2019-04-28 20:06:15 +00:00
.gitreview Update .gitreview for stable/train 2019-09-27 09:06:47 +00:00
.mailmap Add mailmap entry 2014-05-07 12:14:26 -07:00
.stestr.conf Finish stestr migration 2017-11-24 16:51:12 -05:00
.zuul.yaml zuul: remove legacy-tempest-dsvm-neutron-dvr-multinode-full 2020-07-17 23:17:48 +02:00
babel.cfg Get rid of distutils.extra. 2012-02-08 19:30:39 -08:00
bindep.txt Added openssh-client into bindep 2019-10-29 07:02:24 +00:00
CONTRIBUTING.rst Update links in documents 2018-01-12 17:05:11 +08:00
HACKING.rst Remove descriptions of nonexistent hacking rules 2019-08-26 14:55:51 +09:00
LICENSE initial commit 2010-05-27 23:05:26 -07:00
lower-constraints.txt Merge "Tune up db.instance_get_all_uuids_by_hosts" 2019-09-23 19:58:43 +00:00
MAINTAINERS Fix broken URLs 2017-09-07 15:42:31 +02:00
README.rst Update api-ref location 2019-07-22 19:17:28 +02:00
requirements.txt Merge "Tune up db.instance_get_all_uuids_by_hosts" 2019-09-23 19:58:43 +00:00
setup.cfg Rename 'nova.common.config' module to 'nova.middleware' 2019-08-16 00:53:03 +01:00
setup.py Updated from global requirements 2017-03-02 11:50:48 +00:00
test-requirements.txt [train-only] Cap pycodestyle to < 2.6.0 2020-05-18 21:58:41 +02:00
tox.ini Check cherry-pick hashes in pep8 tox target 2020-06-22 16:25:34 +02:00

Team and repository tags

image

OpenStack Nova

OpenStack Nova provides a cloud computing fabric controller, supporting a wide variety of compute technologies, including: libvirt (KVM, Xen, LXC and more), Hyper-V, VMware, XenServer, OpenStack Ironic and PowerVM.

Use the following resources to learn more.

API

To learn how to use Nova's API, consult the documentation available online at:

For more information on OpenStack APIs, SDKs and CLIs in general, refer to:

Operators

To learn how to deploy and configure OpenStack Nova, consult the documentation available online at:

In the unfortunate event that bugs are discovered, they should be reported to the appropriate bug tracker. If you obtained the software from a 3rd party operating system vendor, it is often wise to use their own bug tracker for reporting problems. In all other cases use the master OpenStack bug tracker, available at:

Developers

For information on how to contribute to Nova, please see the contents of the CONTRIBUTING.rst.

Any new code must follow the development guidelines detailed in the HACKING.rst file, and pass all unit tests.

Further developer focused documentation is available at:

Other Information

During each Summit and Project Team Gathering, we agree on what the whole community wants to focus on for the upcoming release. The plans for nova can be found at: