From e70ddd621cb59a8845a4241387d8a49e443b7b69 Mon Sep 17 00:00:00 2001 From: Lee Yarwood Date: Wed, 29 Jul 2020 10:51:34 +0100 Subject: [PATCH] func: Introduce a server_expected_state kwarg to InstanceHelperMixin._live_migrate Useful when testing live migration failures that leave the server in an non ACTIVE state. This change also renames the migration_final_status arg to migration_expected_state within the method to keep it in line with _create_server. Change-Id: Ie0852a89fc9423a92baa7c29a8806c0628cae220 --- nova/tests/functional/compute/test_live_migration.py | 8 ++------ nova/tests/functional/integrated_helpers.py | 7 ++++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/nova/tests/functional/compute/test_live_migration.py b/nova/tests/functional/compute/test_live_migration.py index aded902befeb..deee27ec9663 100644 --- a/nova/tests/functional/compute/test_live_migration.py +++ b/nova/tests/functional/compute/test_live_migration.py @@ -162,16 +162,12 @@ class TestVolAttachmentsDuringLiveMigration( # Migrate the instance and wait until the migration errors out thanks # to our mocked version of live_migration raising TestingException - self.api.post_server_action( - server['id'], - {'os-migrateLive': {'host': None, 'block_migration': 'auto'}}) - self._wait_for_migration_status(server, ['error']) + self._live_migrate(server, 'error', server_expected_state='ERROR') # Assert that we called the fake live_migration method mock_lm.assert_called_once() - # Assert that the instance is listed as ERROR on the source - self._wait_for_state_change(server, 'ERROR') + # Assert that the instance is on the source server = self.api.get_server(server['id']) self.assertEqual(src_host, server['OS-EXT-SRV-ATTR:host']) diff --git a/nova/tests/functional/integrated_helpers.py b/nova/tests/functional/integrated_helpers.py index 5f9a84da4aca..3c2618a7497a 100644 --- a/nova/tests/functional/integrated_helpers.py +++ b/nova/tests/functional/integrated_helpers.py @@ -430,13 +430,14 @@ class InstanceHelperMixin: } self._migrate_or_resize(server, resize_req) - def _live_migrate(self, server, migration_final_status): + def _live_migrate(self, server, migration_expected_state, + server_expected_state='ACTIVE'): self.api.post_server_action( server['id'], {'os-migrateLive': {'host': None, 'block_migration': 'auto'}}) - self._wait_for_state_change(server, 'ACTIVE') - self._wait_for_migration_status(server, [migration_final_status]) + self._wait_for_state_change(server, server_expected_state) + self._wait_for_migration_status(server, [migration_expected_state]) class PlacementHelperMixin: