Port certificates API to v3 Part 1

This changeset only copies the v2 files (implementation and test)
into the appropriate v3 directories unchanged. The copy as-is
will not be loaded by either the v2 or v3 extension loaders. The
second changeset will then make the changes required for it to
work as a v3 extension.

This is being done in order to make reviewing of extension porting
easier as gerrit will display only what is actually changed for v3
rather than entirely new files

Partially implements blueprint nova-v3-api

Change-Id: Ibdb3b444432fa707786e6bb43aaba61d2a3fc89f
Adding fixed_ip in create.end notification

Sending the network information for an instance in the create.end notification.

Fixes bug 1185076

Change-Id: Iabe088ed23736d7b1ee97624761445023aab22c2
Initial scheduler support for instance_groups

Scheduler support for blueprint instance-group-api-extension

The patch set adds the following:
1. conductor support for getting instances via the instance_group uuid
2. conductor support for removing an instance from the instance_group
   members

In addition to this it replaces the 'group' hint with 'instance_group'.

DocImpact

Change-Id: I4a4febc2e85d4ffc8b1579d2673fa107171a3c5b
Remove db session hack from conductor's vol_usage_update()

Commit 3cf4cb2534c387f287f118d4185d54b1435d3bc0 made the
vol_usage_update() in conductor hack around a stale sqlalchemy
object issue by keeping session active in the current context
until the notification was completed. This layering violation
led to some "creative" tests to try to verify this behavior.

This removes that and refreshes the object before letting it
out of the db/api layer so that all the attributes are present,
thus avoiding the dynamic load during notification.

Change-Id: Ia6ef5cb7f462ff72d170f3af33f2d020ee4d3e3c
Remove the unused plugins framework

This framework was merged a year ago and AFAICT hasn't seen use beyond
the two initial wikimedia extensions.

The framework basically allows a way for a single plugin to register API
extensions and notification drivers. Both of these can be done by
directly using config opts like osapi_compute_extension and
notification_driver so this framework really only helps if we expected
to (and wanted to) lots of these plugins in the wild.

Change-Id: I09a11f9931ee0436a56e8b0d925683b54f73b104
xenapi: revisit error handling around calls to agent

Now we have settings to hint if the agent is present or not,
and by default we do not check for the agent,
if the agent is not responding to our calls for its version,
we can fail the build.

In environments that need the agent to inject the networking,
you really want the agent to fail if it is not present.
If the agent did not inject the networking, the server will
have no networking.

However, we can still leave the agent upgrade to silently
fail, as the agent should be backwards compatible.

fixes bug 1188540

Change-Id: I8acdabd8d2bd24b088dad3cd4abec300d0ada3fb
Remove straggling use of all-kwarg object methods

This removes one remaining vestige of the days of yore when
nova developers were forced to always use kwargs on object
methods out of fear, lest it be used over RPC.

Related to blueprint unified-object-model

Change-Id: Ieba76efc2f5daed08e4bde9096c0e178f1f44466
Use InstanceList for _heal_instance_info_cache()

This makes _heal_instance_info_cache() use InstanceList for the
all-by-host query.

Related to blueprint unified-object-model

Change-Id: I93872a35ff249bbeb7d02bfe54a7d83676aa447a
Remove a layer of nesting in _poll_unconfirmed_resizes()

This simply changes the logic atop _poll_unconfirmed_resizes()
and de-indents everything that was nested underneath by four
spaces. It makes it much easier to work on without the useless
extra level of nesting.

Change-Id: I0d65fe2d1fc2649e0527ecbed1e6682b3da52b2b
fixes nova resize bug when force_config_drive is set.

If files is None, set contents=[] when calling
instance_metadata.InstanceMetadata from within _create_image() to prevent
the method trying to iterate a NoneType.

Fixes bug 1183003

Change-Id: I0ac18ad5363ab9496fa83d231d7ec7c59d737691
Merge "Adding fixed_ip in create.end notification"
Merge "Initial scheduler support for instance_groups"
Revert "Initial scheduler support for instance_groups"

This reverts commit b2c17ae891b12118b9d11bf0ecc44e77956715c8.

While reviewing merged changes, I came across this one.  It's using the
conductor in a way that it shouldn't.  The scheduler has db access, so
there's no need to add the extra conductor overhead.  The best thing to
do here is to just revert for now, IMO.

Change-Id: Iaa0d67df7bb84913784d925cffebcd5f252249ea
Merge "xenapi: revisit error handling around calls to agent"
Merge "fixes nova resize bug when force_config_drive is set."
Merge "Remove straggling use of all-kwarg object methods"
Merge "Use InstanceList for _heal_instance_info_cache()"
Merge "Remove a layer of nesting in _poll_unconfirmed_resizes()"
Merge "Revert "Initial scheduler support for instance_groups""
Merge "Remove db session hack from conductor's vol_usage_update()"