OpenStack Compute (Nova)
Go to file
Balazs Gibizer 37301f2f27 consumer gen: support claim_resources
This patch adds the handling of consumer generation conflict for the
scheduler report client claim_resources function.

Note that almost every instance move operation uses the migration.uuid
to hold the source node allocation while attempting to allocate on the
destination for the instance. The only exception is evacuation as during
evacuation both the source and the destination allocations are held by
the instance.uuid as consumer.

There are three major cases handled regarding consumer generation
conflicts during claim_resources:

* The caller wants to claim resources and assumes that the provided
  consumer is a new consumer. For example scheduler claims during the
  build of a new instance or during the move of an existing
  instance and the source allocation is held by the migration_uuid. In
  this case if Placement returns consumer generation conflict then there
  is a serious inconsistency about that consumer. So this patch
  ensures that the operation is aborted.

* The caller knows that there is allocation on the consumer before
  calling claim and reads the current allocation from Placement. The
  only example of this in the current codebase is forced evacuation. In
  this case the caller provides the consumer_generation to
  claim_resources. If Placement returns consumer generaton conflict then
  the caller aborts the operation.

* The scheduler wants to claim resources for a non-forced evacuation.
  The scheduler does not know that it is an evacuate operation and the
  scheduler only sees allocation candidates. Therefore the scheduler
  uses the same code path as in the first case and calls claim_resources
  without providing consumer generation. In this case the
  claim_resources code needs to read the actual consumer generation
  from Placement. If during this claim Placement returns consumer
  generaton conflict then claim_resource will raise and let the caller
  abort the opertion.

Blueprint: use-nested-allocation-candidates
Change-Id: I097732754b67bd5cf50abd15db7da3f013b6cdd5
2018-10-04 13:37:37 +02:00
api-guide/source Rename "polling_changes-since_parameter.rst" 2018-09-23 06:42:34 -04:00
api-ref/source api-ref: add 'migrations' param to GET /os-migrations 2018-09-25 17:06:02 -04:00
contrib trivial: Remove "vif" script 2017-08-07 16:00:10 +01:00
devstack Skip test_resize_server_revert_with_volume_attached in nova-lvm 2018-07-19 12:22:18 -04:00
doc Merge "Remove unnecessary redirect" 2018-10-02 22:16:30 +00:00
etc/nova Add osprofiler config options to generated reference 2018-06-16 12:46:19 +00:00
gate Add trait query to placement perf check 2018-08-16 18:32:12 +01:00
nova consumer gen: support claim_resources 2018-10-04 13:37:37 +02:00
placement-api-ref Merge "Document no content on POST /reshaper 204" 2018-08-29 09:22:16 +00:00
playbooks/legacy Add placement perf info gathering hook to end of nova-next 2018-08-14 15:42:08 +01:00
releasenotes consumer gen: more tests for delete allocation cases 2018-09-26 13:30:07 +02:00
tools Make Xen code py3-compatible 2018-08-10 20:04:19 +00:00
.coveragerc Remove nova/openstack/* from .coveragerc 2016-10-12 16:20:49 -04:00
.gitignore Implement granular policy rules for placement 2018-05-17 11:12:16 -04:00
.gitreview Add .gitreview config file for gerrit. 2011-10-24 15:07:19 -04: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 Fix neutron-tempest-linuxbridge irrelevant-files 2018-09-29 16:21:58 -04:00
babel.cfg Get rid of distutils.extra. 2012-02-08 19:30:39 -08:00
bindep.txt Merge "Bindep does not catch missing libpcre3-dev on Ubuntu" 2018-02-14 07:31:09 +00:00
CONTRIBUTING.rst Update links in documents 2018-01-12 17:05:11 +08:00
HACKING.rst Removed unnecessary parantheses in yield statements 2018-03-07 16:44:36 +09:00
LICENSE initial commit 2010-05-27 23:05:26 -07:00
lower-constraints.txt Use uuidsentinel from oslo.utils 2018-09-05 09:08:54 -05:00
MAINTAINERS Fix broken URLs 2017-09-07 15:42:31 +02:00
README.rst Docs: modernise links 2018-03-24 20:27:11 +08:00
requirements.txt Use uuidsentinel from oslo.utils 2018-09-05 09:08:54 -05:00
setup.cfg Remove ChanceScheduler 2018-08-20 15:56:13 +01:00
setup.py Updated from global requirements 2017-03-02 11:50:48 +00:00
test-requirements.txt Cleanup ugly stub in TestLocalDeleteAllocations 2018-05-16 09:23:55 -04:00
tox.ini Fix missing specifying doctrees directory 2018-09-20 20:48:35 +09: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: