libvirt: sync get_available_resources and get_host_stats

get_available_resources is actually used by the scheduler while
get_host_stats was previously used, and is still used for host
capabilities.  This patch makes get_available_resources and
get_host_stats use the same logic to clean up the code. As part of
making them use the same logic, some of the unused data returned from
get_host_stats is changed to be what get_available_resources expects.
This is also in preparation for removing the periodic RPC fanout from
compute nodes to the scheduler.

This patch cleans up libvirt and fake drivers only.  This is not needed
for other virt backends as this is a cleanup only.  Further cleanup of
libvirt and other drivers will happen after get_host_stats isn't used
for the compute fanout to schedulers.

Because this makes a change to the fake driver, several api samples
needed to be changed as well. The fake driver is changed so the
test_virt_driver tests can continue to be used

Part of bp no-compute-fanout-to-scheduler

Change-Id: I1eec5c117a1cb0490e9f9c09e731909bc31698a9
Fix bad check for openstack versions (vendor_data/config drive)

Looks like the lack of a test case sneaked in this bug. Added a
simple one that just ensures that we can get a list of all the
metadata information. Basic issue was that the check_version
was checking against ec2 versions. Changed it to check OpenStack
version including the 'latest'.

Fixes bug #1211122

Change-Id: Ifac7659467b81abcffd3f84a24292c11f2e058fc
Merge "libvirt: sync get_available_resources and get_host_stats"
Merge "Fix bad check for openstack versions (vendor_data/config drive)"
Add volume snapshot APIs to driver interface

Add volume_snapshot_create and volume_snapshot_delete to the virt driver
interface.  This is needed to be able to do hypervisor assisted snapshot
operations.

Part of blueprint qemu-assisted-snapshots
Assisted snapshots compute API plumbing

This patch adds the plumbing necessary to get assisted volume snapshot
calls down from compute.api down to a compute host.

Part of blueprint qemu-assisted-snapshots
Add an admin API

Add an admin API endpoint to Nova.  This is intended to be an endpoint
only exposed internally to the deployment.  It will be used for
integration with other services, such as Cinder or Neutron.

By default, the admin API listens on port 8776.  When adding information
to the Keystone service catalog, this new port should be used for the
adminURL.

As of this commit, the API exposed by this endpoint is identical to that
of the regular API.  However, hooks are provided for adding admin API
endpoint specific API extensions.  This will be utilized in future
commits.

Implements blueprint admin-api

DocImpact