add xml api sample tests to os-tenant-network

Change-Id: Ib79defe49c82a175cb8605aa3a65ccd2c48d68f7
Fix msg version type sent to cells RPC API

Regression fix from 6b16c8731c44e4a6c80b803f3e8afdd88386d577, cannot
build instances through cells.

The RPC dispatcher dislikes floats for version numbers.

bug 1190371

Change-Id: I18994ce8a524f88910cfe37c9b302296ce30102f
Fix nova-compute fails to start if quantum is down

When nova-compute starts it needs to check the state of instances that
were previously running and needs to query quantum. Previously, if
it queried quantum and quantum raised an error or was unreachable
nova-compute would terminate. This patch adds a retry loop to prevent
this from happening.

Fixes bug 1186357

Change-Id: I0d865e464f7bf60a0b6dc4ca8a42436d16e29790
Add notes about how doc generation works.

Change-Id: I562c743798aeae5e49bd2f96944c3cacd776a53d
Add yolanda to the mailmap.

Noticed a duplicate entry in the AUTHORS file, added to .mailmap.

Change-Id: I649df9d7273347bec72076dc16a5c2217d1bf1c1
Fix a race where a soft deleted instance might be removed by mistake

When a soft deleted instance is restored there is a tiny risk that it
might be deleted if the reclaim periodic task runs at the same time.
This happens because the restore operation sets deleted_at to None
which makes the reclaim job think it is ok to delete the instance.

This can be resolved by restricting reclaims to only those instances
whose task_state is None.

Resolves bug 1186243.

Change-Id: Ia138e2d504b7482c46900583f019a32c70513245
Enhance unit test code coverage for availability zone

In current unit test code for availability zone, the update and
delete operation for AZ is missing. So this review submits two
test methods to test AZ update and delete.

Change-Id: Id98756351f0ecdf5405b9dfea2602a9aee0c5522
Add missing exception to cell_update()

Add missing CellNotFound exception to
cell_update() in db.sqlalchemy.api,
which expected from this method.

Change-Id: I25699a08b581922b13ae62708486bdee6f8b0ac6
Skip ipv6 tests on system without ipv6 support

On system without ipv6 support, CONFIG_IPV6 disabled kernel for
instance, WSGI service testcases for ipv6 would fail for "[Errno 97]
Address family not supported by protocol".

Since there is no easy way to detect actual ipv6 support,
socket.has_ipv6 not working for this case, simply skip ipv6 tests if
errno.EAFNOSUPPORT happens.

Fixes: bug 1174404

Change-Id: I9fa8653f5ccfbcb8c31c51bfda137cb58388afde
Fixes test_config_drive unittest

Fixes test_detail_servers in the config drive unittest where the wrong db
stub was set which resulted in an empty server list being returned.
Fixes asserTrue typo which was never executed because of the empty server
list bug

Change-Id: I160e91c55e60e3636804b4d2b31800386a21538d
Sending volume IO usage broken

This is my fault, I didn't test the sending of notifications
enough when fixing bug 1182102, when the volume IO usage notifications
were been sent too often. This was merged as part of
https://review.openstack.org/#/c/29915

The issue was that the code worked for the first IO usage event (the
one I looked at). Then when constructing the event payload for the second
and following IO usage events the code path ended up comparing a datetime
object from the db with a cached string representation of the last_refreshed
date that was passed into the conductor via the RPC.

Since last_refreshed argument to vol_usage_update in the db layer is
not needed and is causing these issues. I have removed last_refreshed
argument from the db layer and deprecated it from the conduction API.

Change-Id: I2030eb7912c56134ea688a6e8bbfcdeddca28307
Use Instance Objects for Start/Stop

This patch makes the start and stop operations use the Instance
object instead of passing SQLA-derived dicts over RPC. Until
something more sophisticated is needed (and developed), it also
adds a nova.object.register_all() function which just triggers
imports of all the object models so that they are registered.
When adding a new object type, that register function should be
updated appropriately.

Related to bp/unified-object-model

Change-Id: I3c8d9cba07d34097a279502062906de802d19d1f
Add Instance.info_cache

This adds our first nested object: the InstanceInfoCache at
Instance.info_cache.

Related to blueprint unified-object-model

Change-Id: I2dd8727bbe38eadd080e9ea1ef9feabc2fa50520
Use InstanceList object for init_host

Related to blueprint unified-object-model

Change-Id: Idcc4da2a6807a58966e267c62a7f134ce58c890a
Make xenapi/host use instance objects for _uuid_find

This is the one and only use of instance_get_all_by_host() in the
nova/virt tree. Converting it to objects immediately eliminates the
need for that method in the virtapi.

Related to blueprint unified-object-model

Change-Id: I21dfd5a34fb1eef4d442c0711f37e5ef6b18e5bb
Make xenapi use Instance object for host_maintenance_mode()

This makes xenapi grab an Instance object in host_maintenance_mode()
instead of calling into virtapi. This removes the one and only use
of instance_get_by_uuid() in nova/virt.

The existing tests for host_maintenance_mode() need no changes
since they just stub out the database call that eventually gets
called in the same way.

Related to blueprint unified-object-model

Change-Id: Iff4b5de1741653fad8c59e311341aeb3d0bb3539
Remove unused methods from VirtAPI

The instance_get_all_by_host() and instance_get_by_uuid() methods are
no longer needed by any virt drivers, so remove them from the virtapi..

Related to blueprint unified-object-model

Change-Id: Ib51bf3b3e068d69e7a75f7312f03db6c85e7cf49
Remove unused method in VMware driver.

list_interface method in VMware  driver isn't used any where.

Fix bug #1187251

Change-Id: Idc7cee5ab1d0c5b4ebf57ca28511e3b7b4a85240
Put VM UUID to live migration error notification

If live migration encounter some exception before nova scheduler
cast message to nova compute, nova scheduler will set the VM state
to ERROR and send notification, but the notification do not include
VM UUID, this might cause some problem if some components want to
handle the notification since those components will not able to know
the VM UUID about the notification.

The solution is add UUID to live migration error notification so other
components can get the related notification correctly.

Fix bug 1182117

Change-Id: Id101f9e2a689a02d1604c12cd7677e0975bd7428
Refactored tests for instance_fault_*

Moved tests to separate test case
Improved test assertions

blueprint db-api-tests

Change-Id: Id0ac41520bd6b4161f9ad4c72dfb702592733975