Merge "Fix missing wrap_db_error for Session.execute() method"
Extend extension_authorizer to enable cleaner code.

I have seen and used two different methods for authorizing multiple
methods in a class, and both use code duplication that won't be
necessary with this patch.

The first method involves creating multiple authorizers, which can get
out of hand quickly.  i.e.:

authorize_attach_index = extensions.extension_authorizer('compute',
                                                'volume_attachments:index')
authorize_attach_show = extensions.extension_authorizer('compute',
                                                'volume_attachments:show')

The second method involves creating an intermediate method in the
extension like:

def authorize(context, action_name):
    action = 'os-networksv2:%s' % action_name
    extensions.extension_authorizer('compute', action)(context)

but this ends up getting duplicated in each file.  This patch allows
extensions to use the authorizers they already have but gives them finer
control by passing something like "action='index'" to the authorizer.

Change-Id: I6371b2c631acc9345ee6ca4672afa1f49781f22b
Merge "Remove unnecessary deserializer test"
Condense multiple authorizers into a single one.

Reduces code duplication by creating a single authorizer and passing in
the action that should be checked against policy.

Change-Id: I33cfee8695ddfbba39038fbc608c6c74d258745f
Merge "Refactor libvirt volume driver classes to reduce duplication"
Make scheduler modules pass conductor to add_instance_fault

The add_instance_fault_from_exc() method was recently changed to
take a conductor to avoid direct database access. The scheduler was
not updated for this, and thus was not passing it in a couple of
cases.

This makes those calls pass a conductor LocalAPI, resulting in direct
database access (which is desired from the scheduler). The tests that
one might have thought would catch this didn't because they mock out
the method itself. This fixes those and adds two tests that exercise
the add_instance_fault path all the way down to the DB API, which
would have caught it in the first place.

Fixes bug 1110808

Change-Id: If1c2988487d408a39fdf4080541f58f6bdac216c
Merge "Use install_venv_common.py from oslo."
Fixes "is not" usage

Fixes bug #1110973

Change-Id: I68451ce32f3036e43a2bf1f59a02b392a9e40d6d
Merge "Make scheduler modules pass conductor to add_instance_fault"
Fixes 'not in' operator usage

Change-Id: I1e26a8fcb9fa564308e63c11a72aaa55119e4eee
Handle compute node not available for live migration

This patch handles exception.ComputeServiceUnavailable by restoring
instance's vm_state and instance's task_state after live migration
failure caused by unavailable source/dest compute node.

Raises detailed HTTPBadRequest explanation for this exception.

Fixes bug 973393 and bug 1051881

Change-Id: If825b61fad9c4e3030f2e6c5002907255eaf3661
Merge "Fixes "is not" usage"
Merge "Pass parameter 'filter' back to model layer"
Merge "Fixes 'not in' operator usage"
instance.update notifications don't always identify the service

instance_update in conductor/manager.py doesn't identify the service
when calling notifications.send_update(), resulting in mesages on the
notification queue having a service value of None.

This change makes sure that the correct service is identified even
when running conductor in local mode

Change-Id: I1b22c0b46040f51ba715a4d9fa19ef4c98359070
Quantum metadata handler now uses X-Forwarded-For

fixes bug 1097524

The guest IP address was not properly forwarded from the Quantum
metadata proxy.  This patch adds support in Nova for reading this
X-Forwarded-For header.  Previously, the internal proxy IP was
mistakenly used exposing internal infrastructure details.

Change-Id: I6d7d21e2aea4ca5debf1ca4ba6802012537f78a5
Use conductor for instance_info_cache_update.

This patch updates the network API to be able to use the conductor API
to be able to update the instance info cache.

A previous commit, 5731852f91c32fe09db541888d3fee9e3139fc43, updated
the compute manager to use this method from conductor when getting
network info.  This patch builds on that by moving the conductor usage
down to the network API and using it in more places.  Specifically, the
network API calls used by the compute manager that use the refresh_cache
decorator were updated.

The refresh_cache decorator now checks for a conductor_api kwarg and
will use the conductor to update the cache if it's not there.  Otherwise
it goes back to default behavior of using the db directly.

Change-Id: Ib5e17f5f8fb4ee14e3ed305057d18d40f2e905e5
import tools/flakes from oslo

Change-Id: Id6d99fe1fd39e8c061f591e9a82058aea9664674
Merge "Add api samples to fping extension"
Merge "Code cleanup for rebuild block device mapping"