Daniel P. Berrange 4cdd962bc3 host_info: add ability to filter list of supported vifs
The HostInfo object reports information about all plugins
installed on the host and which vif types they support.

When configuring a port for a particular instance though,
the service host may only support a subset of vif types.

For example, if the VM does not have shared memory, or
is not using virtio-net, then it is not possible to use
the vhostuser VIF type. Thus users of os-vif need to be
able to filter the HostInfo data to restrict to to the
subset of vif types that are actually usable in the
particular usage scenario.

Rather than having the compute node pass across an
arbitary set of information to os-vif, to have it do
filtering in the os_vif.host_info() method, add an API
that lets Nova filter the host info explicitly.

For example, when configuring a instance's port Nova
would do

   supported_vif_types = ["VIFBridge", "VIFOpenVSwitch"]
   if ...instance has shared memory and QEMU > 2.1.0...
     supported_vif_types.append("VIFVHostUser")

   host_info = os_vif.host_info(supported_vif_types)

Change-Id: I1f8c8ae49b767b7684f60cd9cac153fc9ab42088
2016-11-08 13:09:50 +00:00
..
2016-05-03 13:53:29 +01:00