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
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
Move compute's _get_instance_volume_block_device_info to BDM objects

This patch makes the compute manager's
_get_instance_volume_block_device_info method use objects internally.
This method is being called in a number of places, which makes this a
convenient place to start introducing BDM objects in compute.

Also moves the tests that needed fixing to mock.

Part of blueprint: clean-up-legacy-block-device-mapping
Part of blueprint: icehouse-objects

Change-Id: Ied2dcb860e2ba375117bab341a56b9fea516cffe
Merge "Objectify instance_action for cell scheduler"