Add supported file system type check at virt layer

Currently nova doesn't check whether the file system type is supported
by virt layer(hypervisor) before use it. This patch adds current
support file system type definition then create a default check
function at virt layer. Following patches will do the real check
in different driver such as libvirt.

Change-Id: Ie4d876a48b36c1a53b171dd521bdeef868a31486
Partial-Bug: #1293880
Add APIv3 support to make host optional on evacuate.

DocImpact: The evacuate target host is now optional. If
'host' field is not sent in the request, the scheduler
will determine the target host. This will include
nova client changes ( on the proper commit ) to support
this new optional parameter.

Implements: blueprint find-host-and-evacuate-instance

Change-Id: I907ea4ef39cfad50a48cb80bceba217fdf482f6e
Co-Authored-By: Juan M. Olle <juan.m.olle@intel.com>
Co-Authored-By: Andres Buraschi <andres.buraschi@intel.com>
Co-Authored-By: Anuj Mathur <anujm@thoughtworks.com>
Co-Authored-By: Navneet Kumar <navneetk@thoughtworks.com>
Co-Authored-By: Claxton Correya <claxton@gmail.com>
Update port binding when unshelve instance

When unshelve instance, it should update the attached port also.
This patch invoke network_api.migrate_instance_finish to update
the port's binding info.

Change-Id: Iaa77163dde5494154d67ef392142669d70c3e643
Closes-Bug: #1306922
VMware: use datastore classes get_allowed_datastores/_sub_folder

Convert the above-mentioned functions to use the datastore utility
classes.

partial blueprint vmware-spawn-refactor
Change-Id: I20c37367c8dca1c8dc20a308ce2cea5229097701
VMware: use datastore classes in file_move/delete/exists, mkdir

Straightforward conversion of a few functions in ds_util to
accepts DatastorePath objects instead of literal strings.

partial blueprint vmware-spawn-refactor
Change-Id: I9dff390ce020dcc39a05184a7ee69902e3412c9f
VMware: Trivial indentation cleanups in vmops

This change has been split out of
https://review.openstack.org/#/c/87002/, which was written by Shawn
Hartsock.

TrivialFix

Co-authored-by: Shawn Hartsock <hartsocks@acm.org>
Change-Id: I6c3ee19b019668a7509ee9835a53271f98805f8f
VMware: Convert vmops to use instance as an object

This is mostly mechanical, but it does expose what appears to be a bug
in the interaction between object.Instance's config_drive field and
configdrive.required_by(). object.Instance defines config_drive to be
a String, but configdrive.required_by() expects it to be a Boolean. In
assigning a boolean value to config_drive, it is cast to a String,
which evaluates as True when cast back to a Boolean. We therefore
update the tests which use config_drive to set either a String value,
or None, which is what other code does.

Note that Nova does not pass an Instance object to all driver methods,
so not all uses can be updated.

Change-Id: Ifc9ce5d96da30abfa09b608a9c8615ede1485a50
Revert "Add missing image to instance booted from volume"

This reverts commit c3191cf0ba5ad3dc2df8da2a2bf5c9d270fde9d9.

The change needs to be thought out some more, i.e. why isn't
compute_api.get_all just loading up the image_ref value on the instance
object rather than calling a helper method from the servers extension to
the instance object which just calls back to compute_api, seems very
roundabout, plus isn't it a v3 API issue also?

Conflicts:
	nova/api/openstack/compute/servers.py

Due to: 826aed0 Use oslo.i18n

Change-Id: I6abbfdfa786c3d98065c969e7f9d7d5830caf7e8
Closes-Bug: #1343689
Merge "VMware: use datastore classes get_allowed_datastores/_sub_folder"
Merge "Revert "Add missing image to instance booted from volume""
Merge "VMware: use datastore classes in file_move/delete/exists, mkdir"
Merge "Update port binding when unshelve instance"
Merge "Add supported file system type check at virt layer"
Merge "VMware: Trivial indentation cleanups in vmops"
Merge "VMware: Convert vmops to use instance as an object"
Merge "Add APIv3 support to make host optional on evacuate."