make vmwareapi driver pass quantum port-id to ESX

bug 1121349

Similar to how the libvirt and xenapi drivers need to communicate
the quantum port-id (aka the nova vif_uuid when quantum is in use)
to the compute layer in order to identify each vNIC, vmwareapi
needs to do the same.

Change-Id: I8b4bf81bfbad63e61a6ade9f0173e478b3aa45bd
Implements resize / cold migration on Hyper-V

Blueprint: hyper-v-compute-resize

Resize / cold migration is implemented by copying the local disks to a remote
SMB share, identified by the configuration option HYPERV.instances_path_share
or, if empty, by an administrative share with a remote path corresponding to
the configuration option instances_path.

The source instance directory is renamed by adding a suffix "_revert" and
preserved until the migration is confirmed or reverted. In the former case
the directory will be deleted and in the latter renamed to the original name.

The VM corresponding to the instance is deleted on the source host and
recreated on the target. Any mapped volume is disconnected on the source
and reattached to the new VM on the target host.

In case of resize operations, the local VHD file is resized according to
the new flavor limits. Due to VHD limitations, an attempt to resize a disk
to a smaller size will result in an exception.

In case of differencing disks (CoW), should the base disk be missing
in the target host's cache, it will be downloaded and reconnected to the
copied differencing disk.

Same host migrations are supported by using a temporary directory
with suffix "_tmp" during disk file copy.

Unit tests have been added for the new features accordingly.

Change-Id: Ieee2afff8061d2ab73a2252b7d2499178d0515fd
Adding support for AoE block storage SANs.

Adding support for AoE (ATA over Ethernet) block storage SANs.
AoE initiator driver is supported on all Linux initiators
(released under GPL), ATA over Ethernet (AoE) Linux driver
for all 3.x and 2.6 kernels.

Implements blueprint libvirt-aoe

   - Fix (minor) Redundant exception caching

Change-Id: I00de13eb2d4bd1105b9eb68f1465825414e2d5d7
Make the metadata paths use conductor

This patch makes the metadata service use conductor instead of hitting the
database directly.

It adds a get_ec2_ids() method to conductor, which encapsulates a bunch of
very small id translation database queries. It also does the AZ lookup
via conductor.

Fixes bug 1120402

Change-Id: Iceef753b1451ff53e29dfbf97a696b952b47d5a3
Sync jsonutils from openstack-common

Pulls in new jsonutils to get the configurable max_depth in
jsonutils.to_primitive.

Change-Id: I4878a033257839ec3b2ac5223440b3a9034877cc
xenapi: Remove unecessary exception handling

The volume code was catching exceptions from the XenAPI only to re-raise
more-generic StorageError exceptions. This practice makes it much more
difficult to discover the root-cause of issues in production by making
the message in the instance-faults table less useful.

The solution is to have the original root-cause exception propogate all
the way up to the instance-faults table where the developer will be able
to make sense of it.

Other cleanups:

* Remove useless logging and stop logging opaque-refs in some places

* Remove dead code (create_iscsi_storage)

* Remove one-off functions (forget_sr_if_present,
  introduce_sr_unless_present); just use forget_sr and introduce_sr

* Removed unused `exception` import

* Added Openstack copyright lines

Future Work:

There are lots of other places where unecessary exception handling is
occuring; this patch just addresses this in the attach/detach code-path.

Fixes bug 1122733

Change-Id: I8c382fb505303e604ff2e86afcf302efe3d6851d
Merge "Implements resize / cold migration on Hyper-V"
Merge "Adding support for AoE block storage SANs."
Merge "make vmwareapi driver pass quantum port-id to ESX"
Merge "xenapi: Remove unecessary exception handling"
Merge "Sync jsonutils from openstack-common"
Merge "Make the metadata paths use conductor"