Add full test environment.

Add a tox environment that will install all of the optional
packages and which will run with system site packages enabled
so that we pick up those tests as well. This should allow us
to run expansive tests on jenkins that aren't normally required
locally, but which are possible.

Change-Id: Iabd61874061e24950d4d2082a2fba158b4601624
Migrate existing routes from flat_interface

Right now, any routes that exist on flat_interface (other than the default
route) get lost when we set up the bridge. This patch migrates them over
to avoid losing that connectivity. It does so by using 'ip route' instead
of 'route', which is much easier to script and is consistent with other
use of iproute2 tools in linux_net.py.

Bug 962822

Change-Id: I7d9e8e05169f2f87e8481595397c02fd3a3612f4
Ignore floatingIpNotAssociated during disassociation.

This helps in corner cases where the exception prevents network deallocation.

Change-Id: I88849899c5a2ed69696b644cb5f856fca5f40da7
Adds default fall-through to the multi scheduler.
Fixes bug 1009681

This offers a default scheduler driver that will be used by the
multischeduler for requests that are not destined for the
compute or volume topic. This is useful for openstack extensions
that want to use the nova-scheduler to schedule requests to
compute nodes but provide their own manager and topic.

Change-Id: I753e87fc8979fd0b62529974f00cf11fa55b3d63
Add hypervisor information extension.

Adds a new extension to get information about hypervisors (as opposed
to compute hosts), including a list of hypervisors matching a regular
expression (database regular expression, i.e., %'s) and a list of
hypervisors with the list of instances living on those hypervisors.

Change-Id: I2e44e82e123e5e727b49622fe5e966131658f9f6
Align run_tests.py pep8 with tox.

tox uses pep8 1.1, but tools/test-requires was set to pep8 1.2.
This sets pep8 back to 1.1

Change-Id: I63612d84a245def20367e192f1dda88aff061cbc
Rename GlanceImageService.get to download

In preparation for integration with the new Glance client, this
drops the return of image metadata from GlanceImageService.get
in addition to renaming it to 'download'.

Change-Id: I75ca3a0a909335e74cd521da6f894c163e773e94
Rename the instance_id column in instance_info_caches.

The name was confusing, because it was a uuid in a column named
instance_id.

Change-Id: I0df0fe84b4891da9529639cf8c07c3e4d86a9958
Fix regression in test_connection_to_primitive libvirt testcase

Commit aa9a592abcbfabad4d2a3f8bb49d1b28d7724262, which renamed
the libvirt module from 'connection' -> 'driver', accidentally
introduced a flaw in the test_connection_to_primitive libvirt
testcase.

The original code in that test case was

   connection = nova.virt.libvirt.connection.LibvirtDriver('')
   jsonutils.to_primitive(connection._conn, convert_instances=True)

Notice how the second line is using the '_conn' attribute on
the LibvirtDriver *object instance*

Now the new code is

   connection = libvirt_driver.LibvirtDriver('')
   jsonutils.to_primitive(libvirt_driver._conn, convert_instances=True)

Notice how the second line is using the '_conn' attribute on
the LibvirtDriver *class*. Predictably this causes the testcase
to fail due to the '_conn' attribute not existing.

Change-Id: Ie35718ea0c50648938effc53d67a110f280644d6
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Refactor libvirt config classes for representing CPU models/features

The previously added (but not used) LibvirtConfigCPUTest class
was too inflexible. It did not distinguish between parts of the
XML schema which applied to both capabilities & domain XML,
vs those which only applied to the domain XML. By representing
features as a plain string it did not allow for setting attributes
on feature flags like policy.  This change replaces the single
LibvirtConfigCPUTest class with 4 new classes:

 - LibvirtConfigCPUFeature - base class for defining CPU features
 - LibvirtConfigCPU - base class for defining CPU models
 - LibvirtConfigGuestCPUFeature - extension for setting the guest
   specific feature policy
 - LibvirtConfigGuestCPU - extension for setting the guest specific
   match policy, and allowing use of host CPU model passthrough

Fixes: bug #1003373
Implements: blueprint libvirt-xml-cpu-model
Change-Id: I0aa0ddfb86cf8b89b2e4dcc95e21bdca304bd6b3
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add libvirt config classes for handling capabilities XML doc

Libvirt exposes the host/hypervisor features using an XML
schema known as "capabilities". Currently the libvirt driver
code just parses this in an adhoc manner using xpath queries.

This change provides a handful of classes LibvirtConfigCaps,
LibvirtConfigCapsHost and LibvirtConfigCapsGuest for maintaining
an object based representation of the capabilities. The
LibvirtConfigCapsHost class also uses the existing LibvirtConfigCPU
class

Fixes: bug #1003373
Implements: blueprint libvirt-xml-cpu-model
Change-Id: Ie962c6378b0da09eddc75983d4824a226ed1c25e
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add missing nova-novncproxy to tarballs

Fix setup.py to include bin/nova-novncproxy in generated tarballs.
Fixes bug 1018829.

Change-Id: Iad2aa32602224e15bb879f81a13b764fc09d9c67
Remove duplicate check of server_dict['name']

Exact same three lines are at line 614.

Change-Id: I806574e9d5152e7c63bdb45e86e8844ce78fbc9f
Merge "Migrate existing routes from flat_interface"
Merge "Rename GlanceImageService.get to download"
Use setuptools-git plugin for MANIFEST.

Instead of a hard-coded MANIFEST.in to list non-code files to be included in
the tarball, use the setuptools-git plugin to ensure that every file that's
in git will wind up in the tarball. The only things needed in MANIFEST.in
now are files that are generated as part of the sdist run.

Change-Id: I76df685d58f7b56977d859e8df92e845f450b3e4
Merge "Remove duplicate check of server_dict['name']"
Merge "Fix regression in test_connection_to_primitive libvirt testcase"
Merge "Add missing nova-novncproxy to tarballs"
Remove tpool stub in xenapi tests

XenAPI stopped using tpool in commit a3a5f23487e9ca4257551fd3d430d8ebcfca131a
so remove the stubs that are unnecessary now

Change-Id: I709a1b557576471d3b69c2a28f00d25602ed090f