Clean up setting of control_exchange default

The RPC code from Oslo now registers the control_exchange option but
provides us with an API for changing the default.

blueprint: scope-config-opts
Change-Id: Ie7950daaddb53f38eb72d2a113e1f26252dd6903
Move fake_network opt to nova.network.manager

This is only used in the network.manager and linux_net.

blueprint: scope-config-opts
Change-Id: Id39a6a8427b293d1d9f9f22be12357b206910d72
update version urls to working v2 urls

the GET /v2/ API call is documented to return urls to both
wadl and pdf documents. However our call returned non working
urls to 1.1 versions of those documents. Fix this.

Also fix the unit tests to actually test the output of versions.
Previously we were over stubbing the test_verions.py so it was
testing only itself, and not the output you'd actually get from
the real versions.py module.

Renamed the variables used for the expected variables to reduce
confusion about what is an expected variable vs. the variables
coming from versions.py to try to ensure we don't have cicular
always passing tests in the future.

Fixes bug #1076109

Change-Id: I1047b8c48ff053eed5ad4afa8eae5833f70d0893
Timeout individual tests after one minute.

Use fixtures.Timeout to timeout each nova test after one minute of
running. Because only one fixtures.Timeout can be in use at a time
subclasses of nova.test.TestCase should not explicitly use this fixture.

Change-Id: I0fced73e81784d0f843ecac2998598a0343a2083
Cells: Add periodic instance healing

Adds a periodic task that'll sync instance information to API cells
periodically.  Does a handful of instances per periodic task run based
on config values.  Instances picked for syncing are randomized so that
multiple nova-cells services won't be syncing the same instances at
nearly the same time.

instance_updated_at_threshold -- Number of seconds after an instance was
                                 updated or deleted to continue to sync
                                 (Ie, don't sync instances updated more
                                 than 'x' seconds ago.)
instance_update_num_instances -- Number of instances to update per periodic
                                 task run

Implements blueprint nova-compute-cells

DocImpact

Change-Id: I3103c3a69ab9cf0ec3e399abe046ed0d216234ab
Imported Translations from Transifex

Change-Id: I58c8020ccaa88361bfe7062fa094f530461aea96
Use full instance in virt driver volume usage

Right now, the virt driver method get_all_volume_usage() returns
a list of items, including the instance uuid. In order to pass
the results of this over to conductor (which will demand a full
instance), this patch converts the structure to include it.

It appears that only libvirt implements this method, and the change
is fairly trivial.

Related to blueprint no-db-compute-manager

Change-Id: Ia8001727b57442ef0ecc2c161201f1a617e199d4
Move vol_usage methods to conductor

This patch moves the compute/manager's use of the following methods
to conductor:

 - vol_usage_update()
 - vol_get_usage_by_time()

Related to blueprint no-db-compute-manager

Change-Id: I51a30d66be51eb532cb19c8b06b87ad07387dd54
Move migration_get_unconfirmed_by_dest_compute to conductor

This patch moves compute/manager's use of the db query
migration_get_unconfirmed_by_dest_compute to the conductor.

Related to blueprint no-db-compute-manager

Change-Id: Ic92f3ae09f831465d12809c14c4a18ffd394f26f
Merge "Imported Translations from Transifex"
Move service_get_all operations to conductor

This patch adds a single service_get_all_by() method to the
conductor, which services the following database calls:

 - service_get_all()
 - service_get_all_by_topic()
 - service_get_all_by_host()
 - service_get_by_host_and_topic()
 - service_get_all_compute_by_host()

It also makes compute/manager use conductor for this case.
The special case for the service_get_all_compute_by_host() call
is rather unfortunate, and I wonder if it might be okay to (later)
make the generic function automatically joinedload in the compute
case.

Related to blueprint no-db-compute-manager

Change-Id: Ib4aa10a3196a4b9aa779f57f4e5d6b136676f3bd
Add ping to conductor

This adds a ping() method to conductor, which takes a single
argument and returns it back to the caller. It also returns
the name of the current service, which is always 'conductor' in
this case. I did this because I think that a generic ping method
should do this in order to facilitate blind or broadcast pings.

Related to bp/no-db-compute-manager

Change-Id: I83105060945fa6a793d884c9e06ff154bc98e715
Merge "Timeout individual tests after one minute."
Merge "Cells: Add periodic instance healing"
Merge "update version urls to working v2 urls"
Merge "Clean up setting of control_exchange default"
Merge "Move fake_network opt to nova.network.manager"
Merge "Add ping to conductor"