Fix incorrect exception raised during evacuate

This change creates a new exception 'ComputeServiceInUse'
to better represent the error when trying to evacuate
an instance with a running compute service. Also, it adds
a missing test for evacuate API v3.

Closes-Bug: #1230282

Change-Id: I1c4edb01e84cd2a89879bca9c99f5e38f47e16fb
Sync three-part RPC versions support from Oslo

Change-Id: Ia93e7a6d978374e0dcf49c2be230c67e41a7bd14
Merge "Fix incorrect exception raised during evacuate"
Merge "Sync three-part RPC versions support from Oslo"
xenapi: refactor: move UpdateGlanceImage to common

During the review of https://review.openstack.org/41651 it was
recommended to move UpdateGlanceImage to a common library. A bug was
filed to deal with the refactors. This change fixes the first part.

Fixes bug 1220596

Change-Id: I95ae89525b7e6768c5a70364945d5a10cb906d88
XenAPI: Fix translation of metadetails in aggregates

https://review.openstack.org/#/c/43157/ added a translation from the sqlalchemy model to
the instance object replacing metadetails with metadata.

This added more traces in general for XenAPI (when we queried whether we were using
aggregates) and actually broke the host aggregate functionality

Change-Id: I87195753931945b6e1ecf75bc81575a6fa03068e
Closes-bug: 1232179
xenapi: post install scriptlet to rpm

A freshly installed XenServer requires some modifications in order to be
able to run OpenStack. Nova contains an rpm specification to create a
package with the dom0 plugins, however installing the rpm is not enough.
Some more actions need to be taken:
 - create /images, link to a directory within the local SR
 - setup an ssh keypair, and authenticate it with the host
This change adds a post script to the nova plugins rpm spec file, so
by installing the rpm on a XenServer, it is ready to run OpenStack, no
further manual actions needed.

Change-Id: Id57e3a3ab2782550468c6aa4c01059ceb7cc81ab