Add support for setting up <channel> elements in libvirt config

To enable use of guest agents, support for configuring the
<channel> elements in libvirt XML config is required

Blueprint: libvirt-spice
Change-Id: I3cea7b326bb2f746c5804d0aa3bbe369da6935e8
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add support for configuring SPICE graphics with libvirt

Add support to the libvirt driver to configure SPICE graphics
and the SPICE guest agent. It allows for enablement of both
VNC and SPICE at the same time, since some recent libvirt/KVM
versions support this concurrent mode.

The USB tablet will now only be enabled if VNC is requested,
or SPICE is requested without the agent

Blueprint: libvirt-spice
Change-Id: Ic7fbfd636455aba5bf881b6a1925fd4561edfd15
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Pull NovaWebSocketProxy class out of nova-novncproxy binary

To allow sharing of proxy code between nova-novncproxy and
nova-spicehtml5proxy, pull the NovaWebSocketProxy class
out of nova-novncproxy into a new nova/console/websocketproxy.py
file

Adds previously missing websockify dep to pip-requires.

Blueprint: libvirt-spice
Change-Id: If1334256680e7075598f00ce153cf6f021cc720f
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add nova-spicehtml5proxy helper

Add nova-spicehtml5proxy which provides a websockets proxy,
equivalent to nova-novncproxy

Blueprint: libvirt-spice
Change-Id: I48be78c97bb7dd6635fd4bba476ef22701418ba1
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add a get_spice_console method to nova.virt.ComputeDriver API

To mirror the existing get_vnc_console method, add a new
get_spice_console method to nova.virt.ComputeDriver API.

No attempt is made to wire this up to the RPC API, since at
this time there is no equivalent of novnc or xvpvncproxy to
use with SPICE.

Blueprint: libvirt-spice
Change-Id: I4cf12074b240d6882e46a81783cf20a3d97d4b2a
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Expose a get_spice_console RPC API method

To mirror the existing get_vnc_console RPC API method, expose a
new get_spice_console RPC API method. The only console type
supported currently is 'spice-html5' which is equivalent to
'novnc'

Blueprint: libvirt-spice
Change-Id: Iab9d3dfc3564a122a8cd2b53d34fdcc725bfa29b
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Updates prerequisite packages for fedora

Adds gcc, libxslt-devel (has dependency on libxml2-devel) and mysql-devel to
the list of prerequisites

Change-Id: I9c27868b30ef17d73adf8ad2e72b3d0e76fe76d1
Merge "enable hacking.py self tests"
Merge "Add common config options for SPICE graphics"
Merge "Add support for setting up <channel> elements in libvirt config"
Merge "Updates prerequisite packages for fedora"
Merge "Add support for configuring SPICE graphics with libvirt"
Merge "Move migration_get_..._by_host_and_node to conductor"
Make resource tracker use conductor for listing compute nodes

This makes the resource tracker use the existing conductor method
of service_get_all_compute_by_host() instead of querying the
database directly.

Related to blueprint no-db-compute

Change-Id: Iee19eeaa8651e4df0abb974f3f3ddeafd9d23409
Make resource tracker use conductor for listing instances

This patch extends the conductor manager's get_all_by_host() method
to take an optional node parameter, which will cause the additional
filtering, if present. It also makes resource tracker use the
conductor for getting instances on the current host/node.

Related to blueprint no-db-compute

Change-Id: I407757d356b4162f32da29924175175a40f88f13
Merge "Use testrepository setuptools support."
Merge "Make resource tracker use conductor for listing compute nodes"
Add encryption method using an ssh public key.

This is a prerequisite for adding support to xenapi with
a guest agent to support the get-password command.

Related to blueprint get-password

Change-Id: I226ea5ee4fd6e326ccbb39cdf9098925d3f45312
Save password set through xen agent.

The get-password extension expects an encrypted b64 encoded password.
If we are setting the password via a guest agent and the user has
provided a public key, then we can go ahead and encrypt the password
and write it to metadata. If the guest agent is not working or not
installed, we leave the encrypted password to be set by posting to the
metadata server.

Related to blueprint get-password

Change-Id: I3ed26c7e1929f3c4c84f9bb87b0c620ab27223cb
Merge "Make resource tracker use conductor for listing instances"