diff --git a/tobiko/openstack/nova/_client.py b/tobiko/openstack/nova/_client.py index 6b4eeab29..dce0dac75 100644 --- a/tobiko/openstack/nova/_client.py +++ b/tobiko/openstack/nova/_client.py @@ -38,7 +38,7 @@ NovaHypervisor = typing.Union[novaclient.v2.hypervisors.Hypervisor] class NovaClientFixture(_client.OpenstackClientFixture): def init_client(self, session) -> NovaClient: - return novaclient.client.Client('2', session=session) + return novaclient.client.Client('2.56', session=session) class NovaClientManager(_client.OpenstackClientManager): @@ -190,36 +190,20 @@ def live_migrate_server(server: ServerType = None, server_id: str = None, host: str = None, block_migration: bool = None, - disk_over_commit=False, client: NovaClientType = None, **params): server_id = get_server_id(server=server, server_id=server_id) + params.update(host=host) if block_migration is None: - # some setups work only with block migration and some only - # with without - try: - return live_migrate_server(server_id=server_id, - host=host, - block_migration=False, - disk_over_commit=disk_over_commit, - client=client, - **params) - except NotInSharedStorageMigrateServerError: - return live_migrate_server(server_id=server_id, - host=host, - block_migration=True, - disk_over_commit=disk_over_commit, - client=client, - **params) + params.update(block_migration='auto') else: - params.update(host=host, - block_migration=block_migration, - disk_over_commit=disk_over_commit) - LOG.debug(f"Start server '{server_id}' live migration...\n" + - f"{params}") - with handle_migration_errors(server_id=server_id, **params): - return nova_client(client).servers.live_migrate(server=server_id, - **params) + params.update(block_migration=block_migration) + + LOG.debug(f"Start server '{server_id}' live migration...\n" + + f"{params}") + with handle_migration_errors(server_id=server_id, **params): + return nova_client(client).servers.live_migrate(server=server_id, + **params) @contextlib.contextmanager diff --git a/tobiko/tests/functional/openstack/test_nova.py b/tobiko/tests/functional/openstack/test_nova.py index a92e2efe7..6b2d3f0b6 100644 --- a/tobiko/tests/functional/openstack/test_nova.py +++ b/tobiko/tests/functional/openstack/test_nova.py @@ -45,14 +45,14 @@ class ClientTest(testtools.TestCase): @nova.skip_if_missing_hypervisors(count=1) def test_list_hypervisors(self): hypervisor = nova.list_hypervisors().first - self.assertIsInstance(hypervisor.id, int) + self.assertIsInstance(hypervisor.id, str) self.assertTrue(hypervisor.hypervisor_hostname) netaddr.IPAddress(hypervisor.host_ip) @nova.skip_if_missing_hypervisors(count=1) def test_list_hypervisors_without_details(self): hypervisor = nova.list_hypervisors(detailed=False).first - self.assertIsInstance(hypervisor.id, int) + self.assertIsInstance(hypervisor.id, str) self.assertTrue(hypervisor.hypervisor_hostname) self.assertFalse(hasattr(hypervisor, 'host_ip')) diff --git a/tobiko/tests/scenario/nova/test_server.py b/tobiko/tests/scenario/nova/test_server.py index cb5b97b69..8975075f9 100644 --- a/tobiko/tests/scenario/nova/test_server.py +++ b/tobiko/tests/scenario/nova/test_server.py @@ -72,27 +72,17 @@ class BaseServerTest(testtools.TestCase): self._test_migrate_server(live=True) @pytest.mark.server_migrate - @nova.skip_if_missing_hypervisors(count=2) + @nova.skip_if_missing_hypervisors(count=3) def test_6_migrate_server_with_host(self): """Tests cold migration actually ends on target hypervisor """ self._test_migrate_server_with_host(live=False) @pytest.mark.server_migrate - @nova.skip_if_missing_hypervisors(count=2) + @nova.skip_if_missing_hypervisors(count=3) def test_7_live_migrate_server_with_host(self): self._test_migrate_server_with_host(live=True) - @pytest.mark.server_migrate - @nova.skip_if_missing_hypervisors(count=2) - def test_8_live_migrate_server_with_block_migration(self): - self._test_migrate_server(live=True, block_migration=True) - - @pytest.mark.server_migrate - @nova.skip_if_missing_hypervisors(count=2) - def test_9_live_migrate_server_with_no_block_migration(self): - self._test_migrate_server(live=True, block_migration=False) - def _test_migrate_server(self, live: bool, block_migration: bool = None):