Update to Quantum Client 2.2.0

This patch updates tools/pip-requires to use the python-quantumclient 2.2
It also limits the version to <3.0.0 to prevent breaking something accidently
when 3.0.0 is released.

Fixes bug 1152695

Change-Id: Ic47deccac1df5a1b6b5171f1f7d80b250b57ebc9
xenapi: Fix reboot with hung volumes

If a volume becomes inoperable (e.g. the ISCSI connection is severed)
and the user goes to reboot, the instance may enter a permanently halted
state.

The root cause is that a VBD that points to 'bad' volume prevents VM
operations ('reboot', 'start') from completing under XenServer.

The work around is to detect which volumes are bad, detach in the
virt-layer, retry the operation (or in the case of reboot, just 'start'
the halted instance), and then notify the compute manager via a
callback so it can detach the volume in Cinder.

Fixes bug 1148614

Change-Id: Id4e8e84bb5748cfa267c2a418f9405fd86829e8f
Prepare services index method for use with cells

Move the api.openstack.compute.contrib.services' index method's logic
out of the openstack api layer and into the compute api layer.

The addition of the availability_zone information is already done by the
host api. For this reason it was removed from the openstack api layer.
The behaviour of the call remains the same, only the functionality has
been moved.

This patch makes the functionality automatically work in cells.

Work towards: bug #1150499

Change-Id: Ia9489f11608167aed5168ccb3b670f395f7de5f7
Fix quota issues with instance deletes.

In order to keep quotas in sync as much as possible, only commit quota
changes for delete when:

1) An instance's vm_state is updated to be SOFT_DELETED.
2) The DB record is marked as deleted (and the instance's vm_state is
   not SOFT_DELETED)

If a host is down and we delete the instance in the API, this means
quotas are committed within the API.  Otherwise, quotas are committed
on the manager side.

Fixes bug 1098380

Also needed for proper testing: Fixed compute cells tests so that pseudo
child cells use NoopQuotaDriver.  This uncovered inconsistencies in the
NoopQuotaDriver wrt the DBQuotaDriver.  Those issues were fixed as well.

Change-Id: Ib72de1a457f0c5056d55a5c7dd4d8d7c69708996
Fix behaviour of split_cell_and_item

If you try to split a cell and item, with no path!to!cell@ in it, it'll
now return None for the cell, instead causing a ValueError when trying
to split the result.

Change-Id: I228b9f3b0f63f8c7a6004b3206f5312ed2a878bc
Fixes: bug #1153841
Pin SQLAlchemy to 0.7.x

0.7.10 has been released and is compatible with 0.7.x. Instead
of pinning to 0.7.9, simply pin to 0.7.x to avoid SQLAlchemy 0.8

Change-Id: Iea57598698b4faf906e82a2974497221d07f4d16
Fix nova-manage --version

Fixes bug #1138844

Pass the version kwarg to cfg.CONF() so that --version shows the
version number.

Change-Id: I589ebffec67ef00f8ba24f553bf3e81806aa50b6
Fix: Managers that incorrectly derive from SchedulerDependentManager

Change conductor and network managers to be ordinary managers. Also
remove some unnecessary imports from managers already declared with
base manager classes in nova/manager.py.

Resolves bug 1154070.

Change-Id: I6b87cd5d7d5ef66425d084db667a6eff247cf0b1
Fix: nova-manage throws uncaught exception on invalid host/service

Add a test case for this too.

Fix bug 1154089.

Change-Id: I3a60e581a9fac945fddf72c4f037ca5cae0005fc
Sync rpc from oslo-incubator.

Changes include:

 * Fix Copyright Headers - Rename LLC to Foundation
 * Preserve exceptions in impl_zmq.
 * Don't log a traceback on rpc call timeout.
 * Redis-based matchmaker
 * AMQP: skip duplicate messages
 * some other minor fixes / cleanups

Fix bug 1154232.

Change-Id: I8afb6b9a919fca34b4a93f7fad1551a023eba6b2
Add missing tests for db.block_device_mapping_* methods

There was no tests in test_db_api for block_device_mapping_* methods.
Add tests to ensure that all works. Also these tests allow us to refactor
work with session in these methods.

Fix bug in is_ephemeral we should return True or False not instance of
_sre.SRE_Match or None.

blueprint db-api-tests

Change-Id: I3cac17e7d2c8d0b2608fb9a78ea29210f025222b
Refactor work with session in db.block_device_mapping_* methods

Remove explicit use of session where it is not required.
Also this is small performance optimization, because if we put
session parameter to Models.save() method will create subtransaction.

blueprint db-session-cleanup

Change-Id: I6064f3df2daf0178009c4cf40da293f71ca6972a
Virtual Power Driver list running vms quoting error

This patch corrects a issue with VPD when configured for virsh the
list running vms function attempts to execute $2 instead of the actual
command.

Fixes Bug 1154280

Change-Id: I6d06cc58fb0f2935c4341761908b914106bda916
Authored-by: Chris Krelle <nobodycam@gmail.com>
Delete instance metadata when delete VM

* like everything else instance metadata is just soft deleted.
* This doesn't soft delete instance_system_metadata (bug 1153827)

Fix bug 1092408

Change-Id: Iebc2c7e055a110e5067829569127a272a1a92a87
Make run_instance() bail quietly if instance has been deleted

Right now, we make a big mess in the logs if someone deletes an
instance before we get a chance to run it. This cleans that up
to a single warning message.

Fixes bug 1154292

Change-Id: I2de0c2993d6a16d9482878eee4eef10bfd78c3e6
List ConsoleTypeInvalid as a client exception.

get_vnc_console() and get_spice_console() in nova.compute.manager should
list ConsoleTypeInvalid as a client exception for rpc. This prevents the
rpc layer from logging a traceback for this exception when raised. It is
an expected type of exception that the client should be left to handle
how it would like.

Fix bug 1154301.

Change-Id: I3a359cbb4edbfabea1775e927b6f9947db26a284
Don't load system_metadata when it isn't joined.

If we always load system_metadata, it will throw a sqlalchemy
error if it isn't joined in the column. Rather than putting it
in extra keys we need to explicitly join it if it is missing.

Adds a test to make sure that system_metadata is returned
properly from the migration call even though the extra keys
parameter was removed.

Fixes bug 1146000

Change-Id: I05365906ed528a06fe5704449dab72c857fefa65
Fix cells instance deletion

Instance delete and soft_delete are broken with cells when the API
doesn't know the cell of an instance.  A traceback occurs in all child
cells.  Also: soft_delete results in a 'hard' type being sent to
child cells vs 'soft'.

Fixes bug 1154333

Change-Id: I13ac839fa13a66caa100a3459bcc8e1183821ff1
Merge "Fix quota issues with instance deletes."
Lazy load CONF.quota_driver.

nova.quota is imported before config options are parsed and it looks at
CONF.quota_driver on module-load.  This changes it so we look at
CONF.quota_driver post-module-load.

Fixes bug 1154371

Change-Id: Ia2e63a7aeab2234be683ff507e7856d46601a9a8