VMDK:Using host mount info for datastore selection

Currently the VMDK driver picks a datastore for volume creation based
on space utilization. The shadow VM corresponding to the volume is
migrated to a different host and datastore if the volume is attached
to an instance created in a host which cannot access the volume's
current datastore. To reduce these migrations, this fix selects a
datastore which is connected to maximum number of hosts, provided
there is enough space to accommodate the volume. Ties are broken
based on space utilization; datastore with low space utilization
is preferred.

Closes-Bug: #1250816
Change-Id: I5ecf22d782857fca0889799229465c49afe188a0
NFS/GlusterFS: Skip incorrectly formatted shares

Shares should always be of the form address:/volume.  If they are
not (i.e., are missing the '/'), then skip them and issue a warning
message.  This will prevent us from sending incorrect connection_info
dicts to Nova.

Closes-Bug: #1267253

Change-Id: Ic40cd0cdc862b44b0a7d3e5b1d7c4fee8ea1b28d
Fix sheepdog copy_image_to_volume method

The sheepdog driver fails when trying to
create volume from image due to a bug in
SheepdogDriver.copy_image_to_volume.

The utils.convert method is being passed the
tempfile object, but should only be passed
the name of the tempfile.

Change-Id: I6b261d29895bf9c2c30b2d95d74e5be58b8e9b10
Closes-Bug: 1261941
Fix sqlalchemy bug in transfer_get_all_by_project

Because of incorrect use of the sqlalchemy methods joinedload and filter,
incorrect lists of volume transfers were being returned by
transfer_get_all_by_project().

Change-Id: I378a512611591eec896edd5f217e75f9ff0f8ad3
Closes-Bug: 1262432
Merge "Fix sqlalchemy bug in transfer_get_all_by_project"
Merge "Fix sheepdog copy_image_to_volume method"
Merge "VMDK:Using host mount info for datastore selection"