OpenStack Compute (Nova)
Go to file
Matt Riedemann c61ec9d98b Don't persist RequestSpec.retry
During a resize, the RequestSpec.flavor is updated
to the new flavor. If the resize failed on one host
and was rescheduled, the RequestSpec.retry is updated
for that failed host and mistakenly persisted, which
can affect later move operations, like if an admin
targets one of those previously failed hosts for a
live migration or evacuate operation.

This change fixes the problem by not ever persisting
the RequestSpec.retry field to the database, since
retries are per-request/operation and not something
that needs to be persisted.

Alternative to this, we could reset the retry field
in the RequestSpec.reset_forced_destinations method
but that would be slightly overloading the meaning
of that method, and the approach taken in this patch
is arguably cleaner since retries shouldn't ever be
persisted. It should be noted, however, that one
advantage to resetting the 'retry' field in the
RequestSpec.reset_forced_destinations method would
be to avoid this issue for any existing DB entries
that have this problem.

The related functional regression test is updated
to show the bug is now fixed.

NOTE(mriedem): This backport also includes change
I61f745667f4c003d7e3ca6f2f9a99194930ac892 squashed
into it in order to not re-introduce that bug. On
Ocata it must be adjusted slightly to pass a string
rather than list to _wait_for_migration_status
since I752617066bb2167b49239ab9d17b0c89754a3e12 is
not in Ocata.

NOTE(mriedem): This patch has to pull some changes
from two other patches to make live migration work
in the fake virt driver: ce893e37f and b97c433f7.

Change-Id: Iadbf8ec935565a6d4ccf6f36ef630ab6bf1bea5d
Closes-Bug: #1718512
(cherry picked from commit 6647f11dc1)
(cherry picked from commit 757dbd17cf)
(cherry picked from commit 878e99d1f8)
2018-04-12 12:06:30 -04:00
api-guide/source Removes unnecessary utf-8 encoding 2016-12-20 10:27:01 +07:00
api-ref/source fix nova accepting invalid availability zone name with ':' 2017-10-04 18:11:23 -04:00
contrib Merge "changed quantum to neutron in vif-openstack" 2014-03-05 10:45:05 +00:00
devstack Skip test_rebuild_server_in_error_state for cells v1 2017-08-22 18:42:29 +00:00
doc Add 'delete_host' command in 'nova-manage cell_v2' 2018-02-13 00:44:41 +00:00
etc/nova Fix doc generation warnings 2017-03-06 18:51:19 +09:00
gate move gate hooks to gate/ 2017-01-04 11:05:16 +00:00
nova Don't persist RequestSpec.retry 2018-04-12 12:06:30 -04:00
plugins/xenserver XenAPI Remove useless files when use os-xenapi lib 2017-01-10 18:06:17 -08:00
releasenotes Add 'delete_host' command in 'nova-manage cell_v2' 2018-02-13 00:44:41 +00:00
tools Prepare for using standard python tests 2017-02-09 18:01:02 +00:00
.coveragerc Remove nova/openstack/* from .coveragerc 2016-10-12 16:20:49 -04:00
.gitignore doc: Integrate oslo_policy.sphinxpolicygen 2016-10-20 10:31:01 +01:00
.gitreview Update .gitreview for stable/ocata 2017-02-03 19:10:42 +00:00
.mailmap Add mailmap entry 2014-05-07 12:14:26 -07:00
.testr.conf [placement] Adjust the name of the gabbi tests 2016-09-20 19:14:44 +00:00
.zuul.yaml Bumping functional test job timeouts 2018-01-30 21:02:54 +00:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:37 +00:00
HACKING.rst hacking: Use uuidutils or uuidsentinel to generate UUID 2016-11-29 11:49:24 +05:30
LICENSE initial commit 2010-05-27 23:05:26 -07:00
MAINTAINERS Add a maintainers file 2015-05-23 03:22:07 +10:00
README.rst Show team and repo badges on README 2016-11-25 13:55:29 +01:00
babel.cfg Get rid of distutils.extra. 2012-02-08 19:30:39 -08:00
bindep.txt Update bindep.txt for doc builds 2017-11-21 20:09:30 +00:00
requirements.txt Updated from global requirements 2017-08-09 01:01:23 +00:00
run_tests.sh Add description on how to run ./run_test.sh -8 2016-01-11 13:17:04 +00:00
setup.cfg Fix doc generation warnings 2017-03-06 18:51:19 +09:00
setup.py Updated from global requirements 2015-09-17 16:41:48 +00:00
test-requirements.txt Updated from global requirements 2017-01-26 18:48:41 +00:00
tests-functional-py3.txt Remove invalid URL in gabbi tests 2017-01-17 21:10:45 +00:00
tests-py3.txt Enable virt.vmwareapi test cases on Python 2017-01-18 11:14:24 +08:00
tox.ini Update UPPER_CONSTRAINTS_FILE for stable/ocata 2017-02-03 19:10:44 +00:00

README.rst

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 and OpenStack Ironic.

OpenStack Nova is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

API

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

http://developer.openstack.org/api-guide/compute/ http://developer.openstack.org/api-ref/compute/

For more information on OpenStack APIs, SDKs and CLIs, please see:

http://www.openstack.org/appdev/ http://developer.openstack.org/

Operators

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

http://docs.openstack.org

For information about the different compute (hypervisor) drivers supported by Nova, please read:

http://docs.openstack.org/developer/nova/feature_classification.html

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:

http://bugs.launchpad.net/nova

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:

http://docs.openstack.org/developer/nova/