Port server actions unittests to V3 API Part 2

Ports the server actions unittests to test the V3 API.
This mostly involved CamelCase to camel_case changes
and adpating the URLs to point to the V3 API instead of
the V2 API.

It also includes
- Fixing a bug in the admin_password extension picked up by
  the tests where bad request data is not always handled properly
- Generate image ref urls that point to glance api rather than
  the nova api. This fits in with the decision to not port the images
  extension to the V3 API which is implemented here:
  https://review.openstack.org/#/c/40565/
- Moves admin password related tests to the admin password unittests
  test file as this functionality has been moved out from core.

Partially implements blueprint v3-api-unittests

Change-Id: I58b4c0103c824898183fca890c74c3c1cbe19633
Remove xenapi rpm building code

Nova shouldn't be building any types of packages. And if we are we should
be testing this code in gate somewhere.

Change-Id: I70d82a6173b5eda183d4e49d330ae97dd14f9078
xenapi: Speeding up the easy cases of test_xenapi

These were the tests that only required changing the base class. The remaining
tests in test_xenapi will need to have their stubs modified to not hit the DB.

nosetests nova/tests/virt/xenapi/test_xenapi.py

BEFORE: Ran 201 tests in 25.957s
AFTER: Ran 201 tests in 24.573s

Change-Id: Ia0478ac81f1b2b316a22b15e3171250d3b839073
migrate server doesn't raise correct exception

Currently a BadRequest is raised for the migrate and live-migrate API
operations when the given instance isn't found. This patch changes the
APIs to raise a InstanceNotFound instead to be consistent with the other
admin action APIs which hit the same type of error.

Closes-Bug: #1239038

Change-Id: I28cd367c5885481ea19ace43855b2518a2afd955
nova.exception does not have a ProcessExecutionError

Looks like a refactoring problem. utils.execute throws
processutils.ProcessExecutionError

Change-Id: Ia1e2f4761f555fa834826000e91bb3592e3eea7f
Remove duplicates from exceptions list

Duplicated exceptions:
 exception.QuotaError
 exception.SecurityGroupLimitExceeded

Change-Id: Ie8d40cf6e0a1a7b2191877059b757a752aeb4e29
make libvirt driver get_connection thread-safe

libvirt driver's get_connection is not thread safe in the
presence of a libvirtd restart during concurrent incoming
requests.

With existing code each will in turn call get_connection,
find the connection is broken, try to create new one, block
for a while and yield to the next thread to do the same.
You get as many connections as there are incoming requests
and only the last one is used finally. If enough are incoming
these connections can exhaust the client pool configured
for libvirtd.
One fix is to hold a lock while creating the connection.
Note that has_min_version calls _conn which calls get_connection
and thus the direct call to _has_min_version()

Also added the exception text if it fails to register an event
handler for lifecycle events.

Change-Id: I090765802bfe443440f16722bc7c43b6280fe56a
Fixes: bug #1240905
Fix compute_api tests for migrate

They are actually testing resize because of 'flavor_id_passed' being
passed in as True to _test_resize(), when that is already the default
for testing resize.

Change-Id: Iae31dad8e869481898579b5cd752e8e5baa306d1
Change testing of same flavor resize

Resizing to same flavor for compute cells should not fail, so this patch
reworks the current test such that it'll be easier to modify when the
compute cells bug is fixed in an upcoming patch.

Change-Id: I4331db8636c2256f18cd0a2196033e1a2257c971
Call baselineCPU for full feature list

Since the libvirt API getCapabilities doesn't return a full list of CPU features we need
to call the libvirt API baselineCPU with the new flag VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES
to get all features.

Since the flag is new this code checks for its existence before calling baselineCPU.

Also, due to some rather stringent input checking on libvirt's part, just calling
baselineCPU with the output from getCapabilities doesn't work, you have to extract
just the <cpu> stanza from the XML returned by getCapabilities.

Add unit test to make sure that the current verion of libvirt works (although
it will hide some features) and the new version of libvirt will correctly
return all features.

Fixes bug 1217630

Change-Id: I266bacb7e0c79d9c5b13ff163f01d14cad9ab57b
Add tests for compute (child) cell

When testing the compute API, we should also be testing when the
cell_type is 'compute'.

Change-Id: Ib0a82e00040eed5814ed7a031070b343d32ee2db
Fix migrate w/ cells

While in a child cell, do not raise when the current flavor is passed
into compute API's resize().  This is behavior that should be limited to
nova-api.

Closes-bug: 1243816

Change-Id: Ie67af3ab3003164e9742a8c4d5bd75502dca96c4
Nova db/api.py docstring cleanups...

We no longer use LazyPluggable for the db_backend, and
dbapi_use_tpool options. These now come from
nova.openstack.common.db.api.

Also, removed doc about enable_new_services which seemed a bit
lonely without the rest and probably isn't needed since the
config option help explains it well enough.

Change-Id: I14d00e013a1a0c0dfc80e0bba8ad82e97940d6ac
Merge "Fix compute_api tests for migrate"
Merge "Change testing of same flavor resize"
Merge "Add tests for compute (child) cell"
Merge "Fix migrate w/ cells"
Merge "nova.exception does not have a ProcessExecutionError"
Merge "make libvirt driver get_connection thread-safe"
Merge "xenapi: Speeding up the easy cases of test_xenapi"