Change the comments of SOFT_DELETED race condition

_reclaim_queued_deletes will only find instances in SOFT_DELETED
state and delete them if they are only old enough. The quotas will be
committed when the instance was soft-deleted so that resource can
be used right after the soft-delete operation.

There are some concern about the quota inconsistency for the operation,
The only case that the quota might be inconsistent is
the compute node died between set instance state to SOFT_DELETED
and quota commit to DB; when compute node start again
it will have no idea the reservation is committed or not or even
expired, since it's a rare case, so marked as todo.

There are some alternatives if the problem need to be fixed, e.g.
able to find reservation when nova compute restart, so we can double
check whether the quota is committed or not.

Partial-Bug: #1296414

Change-Id: Idf9c179b2dd439462a646568ffd5098cd5d7851f
Store volume backed snapshot in current tenant.

Fix owner of a creating volume backed snapshot.

Snapshot of an instance booted on a volume based on another tenant's
public image is created in the wrong tenant when invoked by admin.

Snapshot metadata (including owner) is based on image metadata. But
when the snapshot is being created by admin, Glance doesn't change
it's owner if it's set. So we forcibly remove owner (tenant)
attribute from image metadata.

Change-Id: I662dfa4f81e24cb2553ffa2578f4c8530eee9fd3
Closes-Bug: #1322195
Correctly reject request to add lists of hosts to an aggregate

Attempting to add or remove a list of hosts to an aggregate
results in an internal server error. This patch fixes the input
validation so such a request is correctly rejected and a 400
error returned.

Change-Id: I760db36d685cff20b01a72160b8b3fbb8a70b412
Closes-Bug: #1321653
Add extensible resources to resource tracker

A resource plugin extension point is added to the resource
tracker to allow the types of resources allocated at the compute
node to be extensible. Information maintained by these plug-ins
is written to the compute_nodes table in the database. The
scheduler uses the information in the compute_nodes table to
determine scheduling decisions.

A plugin that implements vcpu resource tracking is included
and all other code for tracking vcpu has been removed. This
example ensures the plugins are tested in gate jobs.

Co-Authored-By: Andrea Rosa  <andrea.rosa@hp.com>
Co-Authored-By: Paul Murray  <pmurray@hp.com>
This is part of: blueprint extensible-resource-tracking

Change-Id: I64108338e3c958ba1276aaf113a68861cbe286f5
Merge "Change the comments of SOFT_DELETED race condition"
Raise specific error of network IP allocation

Currently Nova raise "Neutron error: quota exceeded" when
neutron client state code is 409 in IP allocation without
caring about if the real error is over quota.

This fixes raises PortLimitExceeded if error from neutron
client is OverQuota and raises NoMoreFixedIps if error from
neutron client is IpAddressGenerationFailure. If the error
is neither of these two errors above, it reraises the original
exception from neutron client.

Change-Id: I0d1942587a359acccfca5298c2dcb4b21d971a42
Closes-Bug: 1331353
Merge "Correctly reject request to add lists of hosts to an aggregate"
Merge "Add extensible resources to resource tracker"
Merge "Raise specific error of network IP allocation"
Merge "Store volume backed snapshot in current tenant."