Make nova/quota use keypair objects

Related to blueprint icehouse-objects.

Change-Id: Ic06d2337c7ef1b028d305d0a7ec354238c239380
Fix unhandled InvalidServerState exceptions in server start/stop

Catch InvalidServerState exceptions in the server start/stop api
and return a 409 conflict rather than causing 500 errors

Closes-Bug: 1266379

Change-Id: I9d2437319d2cef93b9b10184e257acbd8eb45359
VMware: fix missing datastore regex with ESX driver

When using shared datastore and the ESX driver the administrator
is unable to indicate which datastore to use.

Note: there were extensive tests added for the VC driver for the
regex support. These are invoked by passing the flag for the regex
when the ESX driver is created.

Change-Id: Ifb0a4a8df2b26f3521b1301462d1f2c3eeba5c14
Closes-bug: #1246206
Objectify instance_action for cell scheduler

This is a refactor change to make cell scheduler use InstanceAction
class method instead of compute_utils, so that all instance action can
be manipulated through object model and instance action related code in
compute_utils can be deprecated.

This is a part of: blueprint make-instance-action-use-objects
Change-Id: I920c8bf809200e6fc2c0329c11ea4be94dc71158
VMware: improve unit test time

A number of tests would invoke code that would sleep. This
patch adds a mocked function for the sleep.

Change-Id: I2d36bd456a11fcb7145baa5eb4c6875b9ec765d3
Closes-bug: #1280758
Disable IGMP snooping on hybrid Linux bridge

By default, Linux bridge activates the IGMP snooping on his switch.
It is unnecessarily on Linux bridge created by OVS/VIF hybrid vif
drivers because that switch is limited two ports.

That patch also refactoring OVS and IVS plug and unplug unit tests of the
hybrid drivers.

Closes-Bug: #1276038
Change-Id: Ib8bb1874d7a300fddffdc76ba67851109248bebf
Revert "VMware: fix race for datastore directory existence"

This reverts commit 743b74d59d3279478c512a0a559642b1d05284bc,
which introduces a race condition when creating the initial
instance image. Since _mkdir() no longer fails if the directory
exists, two computes racing to create the same image will
result in either corrupted data, lost data, or a strange
failure later on.

Change-Id: Ic646a01b2f96b1341af38b69c372875a95263bad
Closes-bug: #1284312
Updated from global requirements

Change-Id: Id8aa2fe07afd2325f28c63bcb76fff3d8b4d376f
Merge "Updated from global requirements"
vmware: driver races to create instance images

Addresses race condition that occurs when multiple processes
arrive at a fresh Datastore with no vmware_base cache directory.

Change-Id: If1bb6804e3668a56872a653a8ea44d0c7fc70311
Co-Authored-by: Tracy Jones <tjones@vmware.com>
closes-bug: #1284312
Merge "Revert "VMware: fix race for datastore directory existence""
Merge "Make nova/quota use keypair objects"
Merge "vmware: driver races to create instance images"
Merge "Fix unhandled InvalidServerState exceptions in server start/stop"
Merge "VMware: fix missing datastore regex with ESX driver"
Merge "VMware: improve unit test time"
Merge "Disable IGMP snooping on hybrid Linux bridge"
Make volume attach use objects

This patch does 3 things really. Firstly it adds disk_bus and
device_type parameters to reserve_block_device_name compute rpc method,
thus laying the groundwork for the ability to specify those when calling
attach. Further to that - it makes the attach volume code use new-world
objects. These two changes were done in a single commit to avoid
unnecessary rpc version bumps.

In addition to this, attach_volume method of the compute manager has
been refactored to use DriverBlockDevice objects and their method - thus
getting rid of some code duplication.

Finally we move block_device module utility method
instance_block_mapping to use the v2 block device data format and thus
also objects, and do some cleanup around how it was used elsewhere in
the code.

Part of the blueprint: icehouse-objects
Part of the blueprint: clean-up-legacy-block-device-mapping
Part of the blueprint: use-new-bdm-format-in-attach

Change-Id: I3eb341efcd6397f1bfbb98a546e10e248a45460e
Add device bus and type to virt attach_volume call

These two can be passed in the API when booting instances, and this
patch adds them to the relevant virt driver calls, so that they can be
passed when attaching volumes.

Part of the blueprint: use-new-bdm-format-in-attach

Change-Id: Ia961cae2b4bb3554f8d360c67144eb135df5528f
Use disk_bus and device_type in attaching volumes

This patch enables users to pass disk_bus and device_type parameters to
attach action api call of the extended-volumes plugin (v3 API only).

It also implements this functionality inside the libvirt driver.

Implements blueprint: use-new-bdm-format-in-attach

Change-Id: I7895974def7057fbaddf2b3715a8b72a76f88f3e