Logging migrations for particular server if migration failed

Sometimes, test_live_block_migration fails on multinode job
(gate-tempest-dsvm-multinode-full).
http://logs.openstack.org/91/202391/5/check/gate-tempest-dsvm-multinode-full/f838b41/logs/testr_results.html.gz

If live migration is failed, server status become Active from Migrating but
host is not changed. In that case, test_live_block_migration fails for target
host does not match with server host. But from Tempest failure logs, we do not
know whether migration is failed or something else happened.

It will be better for debugging if this tests logs migrations information
for that server if live migration is failed.

Closes-Bug: 1476478

Change-Id: I0f7ba31e44e6d5508483a6552641f59828af20e1
This commit is contained in:
ghanshyam 2015-07-21 16:03:11 +09:00
parent a393bf670e
commit bed827642e

View File

@ -32,6 +32,7 @@ class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest):
super(LiveBlockMigrationTestJSON, cls).setup_clients()
cls.admin_hosts_client = cls.os_adm.hosts_client
cls.admin_servers_client = cls.os_adm.servers_client
cls.admin_migration_client = cls.os_adm.migrations_client
@classmethod
def resource_setup(cls):
@ -109,7 +110,16 @@ class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest):
self._migrate_server_to(server_id, target_host)
waiters.wait_for_server_status(self.servers_client, server_id, state)
self.assertEqual(target_host, self._get_host_for_server(server_id))
migration_list = self.admin_migration_client.list_migrations()
msg = ("Live Migration failed. Migrations list for Instance "
"%s: [" % server_id)
for live_migration in migration_list:
if (live_migration['instance_uuid'] == server_id):
msg += "\n%s" % live_migration
msg += "]"
self.assertEqual(target_host, self._get_host_for_server(server_id),
msg)
@test.idempotent_id('1dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b')
@testtools.skipUnless(CONF.compute_feature_enabled.live_migration,