Allow pinging own float when using fixed gateway

When pinging your own floating ip, the snat rule is not hit if
dnsmasq is set up to give out an external gateway.

Fixes bug 1096259

Change-Id: Ib71312bf37b3a890567cf6212acabb5821846ab8
xenapi: Remove dead code, moves, tests

Related to blueprint xenapi-volume-drivers

Some changes to improve the quality and readability of the existing
code, and to help introducing a clean volume driver concept.

remove:
    dead sm code
move:
    volumeops.introduce_sr -> volume_utils.introduce_sr_unless_present
    volumeops.forget_sr -> volume_utils.forget_sr_if_present
rename:
    volumeops.connect_volume -> _connect_volume
    (to communicate, that it is an internal method)
add tests:
    volumeops.disconnect_volume

Change-Id: Ie5457c3d7823ed77f7ad90252d0c16558e8cfb4f
Fix lintstack check for multi-patch reviews

Some patches in gerrit depend on other patches that are not yet
approved, i.e. not yet landed on master. In this patch lintstack
deals with these cases by currectly generating the right commit
to compare against to further reduce pylint errors.

Part of bp/lintstack

Change-Id: I77622a44949ad2b442d9f2cce6c807e1581830c7
Added sample tests to FlavorSwap API.

Partially implements blueprint nova-api-samples
Fixes bug 1096653

Change-Id: I9a6ca8a023bf0f3404b3a9af635dd29a7a584aa3
Remove more unused opts from nova.scheduler.driver

libvirt_type is unused here since 5b85997

instances_path is unused here since 30aec4a

Change-Id: Ic32775be84b3f46b1d4f117701ebb6e352f1f93c
Fix some conductor manager return values.

A couple of methods in the compute manager were returning a db model as
the result of an rpc.call().  Since db models all contain non-primitive
types, this will cause failures in the rpc layer.

Related to bp no-db-compute.

Change-Id: I6e4af99bd75e4a367bdc83b969ed4d8252f69ba2
Make pinging conductor a part of conductor API.

This patch moves the loop that pings the conductor over rpc until it
responds to be a part of the conductor API.  This will allow it to be
used elsewhere in the code as needed.

Part of bp no-db-compute.

Change-Id: Ie027adef4a3af3059b4ab586e927c93ae1a86fe9
Allow forcing local conductor.

This patch updates the conductor API to allow passing in a kwarg to
force local usage, even if configured for remote usage globally.  This
is useful if we want to convert some parts of the code to use conductor
db proxy APIs, but want to optimize usage to be local for cases where
using the db directly is not a problem.

Part of bp no-db-compute.

Change-Id: Ib7a717e1a6f132022787626e65cacaa8a4afd86c
Handle waiting for conductor in nova.service.

Previously we were waiting for conductor to respond to a ping() in the
compute manager.  This patch moves this down to the base Service class.
A nova service binary can indicate that db access is not allowed and if
so, as soon as the service gets created, it will block while waiting for
conductor to respond.

The compute service has been updated to use this.  This should not
result in any real functional difference.

The reason for this is that there is some database access that needs to
be avoided down at this level.  This allows us to divert these actions
to conductor if needed.

Part of bp no-db-compute.

Change-Id: Idd6387b9428e3f9f4e4dbfe51293693238b2daf0
Add service_create to conductor.

This patch adds the service_create method to the conductor service.  It
also updates nova.service to use it.  When a service has been marked as
not using the db, it will invoke a remote conductor method to create the
service record.

Part of bp no-db-compute.

Change-Id: Ie1f2db96d3134b0e30230565e5c000c416ea73d5
Make nova.service get service through conductor.

Update nova.service to get a service record through the conductor API.
If a service has been marked as not having db access, a remote conductor
method will be invoked to get the service record.

Part of bp no-db-compute.

Change-Id: Ib701b1111eb4532c7a31d0099b7cb8c01def1935
Add service_destroy to conductor.

This patch adds a service_destroy method to the conductor API.  It is
used from nova.service for deleting the service record in kill().  If a
service has been marked as not having db access, the conductor API will
complete this operation via rpc.

Part of bp no-db-compute.

Change-Id: Ie2397a090290823c0a47aaea41f6900072d142b4
Merge "Fix some conductor manager return values."
Merge "Make pinging conductor a part of conductor API."
Merge "Allow forcing local conductor."
Merge "Handle waiting for conductor in nova.service."
Merge "Add service_create to conductor."
Merge "Make nova.service get service through conductor."
Merge "Add service_destroy to conductor."
Merge "Remove more unused opts from nova.scheduler.driver"