Change errors_out_migration decorator to work with RPC

This decorator in nova/compute/manager.py was written to work with
positional arguments, but at run time the decorated methods are
called via RPC with keyword arguments.  This change fixes the
decorator and the associated test cases.

Closes-Bug: #1300380

Change-Id: I9f87151a71e5217e7eff97cdc5cad2c85b620fa5
VMWare: add power off vm before detach disk during unrescue

Non Hot Plug type disk like IDE can only be detached when the VM is power off.

Change-Id: Ib1f387a41abe2b52357854e90c2535ebb7b43f18
Close-bug: #1279199
libvirt: remove_logical_volumes should remove each separately

Currently, remove_logical_volumes() is trying to remove
all of the provided volumes path in a single lvremove command,
while retrying it several times.
This is causing the command to fail, when the deleted volumes
are reappearing in the next iteration of the retry loop.

Handling the removal of each volume separately
and raising an exception for volumes which failed to be removed.
This will increase the chance for individual volume to be removed.

Closes-Bug: #1282423
Change-Id: Ib25f5603929c3038716661a589a41116b4c48909
Missing catch InstanceNotFound in v3 API

After apply instance look helper, some compute api
will invoke instance.save(), it will raise
InstanceNotFound also.
This patch adds them.

Closes-Bug: #1280067
Change-Id: I73cb35c90f1e46a447ae1807a997713105e08bde
ec2: Convert instance_get_by_uuid calls to objects

Convert a couple uses of db.instance_get_by_uuid() to use the Instance
object instead.

Change-Id: I6c317c72661643d46ea0577d6efe87a24bf98b74
Make detach_volume() use objects

This changes the detach_volume() method in compute manager to take
objects.

Related to blueprint compute-manager-objects-juno

Change-Id: Ia09415c55dee0d49e8925d6eb23737b55255d7e1
Finish _delete_instance() object conversion

The _delete_instance() helper has been using objects for a while
now, but was still using an old conductor method to actually
destroy the instance. This makes it use instance.destroy(). Since the
same thing happens under the covers, none of the tests need to be
changed.

Related to blueprint compute-manager-objects-juno

Change-Id: I413394bbc931d1011c276454ecb34ddd8d948f07
Updated from global requirements

Change-Id: I2378e9d68c9a8bd05fa8a086ce8e1c15bd0eb136
Merge "Updated from global requirements"
Imported Translations from Transifex

Change-Id: Ide6fbab58ecaa70ec8f64c3c8514b7337d30f11c
Merge "VMWare: add power off vm before detach disk during unrescue"
Merge "Change errors_out_migration decorator to work with RPC"
Make _get_compute_info() use objects

This removes a direct call to the conductor api for getting service
info and replaces it with an object call. We still need to convert
the compute nodes to primitives for the live migration compute info
blob, but once that is converted to objects, we should be good.

Related to blueprint compute-manager-objects-juno

Change-Id: Ic8213bac5ce4754bfc95d7b47e8b9d4a65dffcc6
Add with_compute_node to service_get()

Right now, a service_get() call cannot joinedload the compute_node
attribute. This means anything that needs that data has to trigger
a lazy-load. A subsequent change will depend on this.

Related to blueprint compute-manager-objects-juno

Change-Id: Ie537f30374280203ea153230cfa1a7aecfa5b891
Add get_by_service() method to ComputeNodeList object

This allows us to get the ComputeNode objects related to a single
Service, in the case of the many-to-one situations of baremetal
and vmwareapi. In order to avoid passing the whole Service over
RPC, this adds a non-remotable API in front of the RPC one that
takes a full service, but ends up only passing the ID.

Related to blueprint compute-manager-objects-juno

Change-Id: I995fa6948bda64d2f5d60f0c81270321133bbfa8
Make update_available_resource() use objects

This makes the update_available_resource() periodic task use
objects instead of direct calls to conductor.

Related to blueprint compute-manager-objects-juno

Change-Id: I39fe7cae852c60e0490a5b2f1a98a011ac8b8425
Convert poll_rescued_instances() periodic task to objects

This converts poll_rescued_instances() to use instance objects for
fetching the list of unrescued instances, and makes it call directly
to compute api instead of going through conductor. Now that
compute_api.unrescue() uses objects natively, we can avoid the
indirection through conductor, which makes it faster and reduces
messaging load.

Related to blueprint compute-manager-objects-juno

Change-Id: I68b2b57831048932277e1f4e388f8a1aa8309aff
Make aggregate host operations use Aggregate object

This removes use of the conductor aggregate host methods, which
can now be done on the aggregate object itself. This is only used
in the xenapi driver, and the tests validate the operation in the
database afterwards, so no test changes are required here. This
will allow us to deprecate those aggregate methods in the conductor
api.

Related to blueprint compute-manager-objects-juno

Change-Id: I78f8d0d9ad0dd73c5c52582940dd70db73522600
Imported Translations from Transifex

Change-Id: Id0019f3420f4a2965fb293b0fd04062fc0e807d0
Merge "Missing catch InstanceNotFound in v3 API"