summaryrefslogtreecommitdiff
path: root/nova
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-04-29 12:08:35 +0000
committerGerrit Code Review <review@openstack.org>2022-04-29 12:08:35 +0000
commit1b1e60f61f9c8b4d3c10840c410669b3273b6872 (patch)
tree65b991ad2698196e3adad7b0234bd340c01a34b3 /nova
parente3a21040096013131deb1fda9e34ae4c65aece7e (diff)
parent5181bae923bdae2b536affc87d39ddf2c5f7835d (diff)
downloadnova-1b1e60f61f9c8b4d3c10840c410669b3273b6872.tar.gz
Merge "Reproduce live migration rollback w/o multi port bindings error"
Diffstat (limited to 'nova')
-rw-r--r--nova/tests/functional/regressions/test_bug_1888395.py45
1 files changed, 38 insertions, 7 deletions
diff --git a/nova/tests/functional/regressions/test_bug_1888395.py b/nova/tests/functional/regressions/test_bug_1888395.py
index e582ad3e85..8f2e2a0eeb 100644
--- a/nova/tests/functional/regressions/test_bug_1888395.py
+++ b/nova/tests/functional/regressions/test_bug_1888395.py
@@ -23,14 +23,8 @@ from nova.tests.fixtures import libvirt as fakelibvirt
from nova.tests.functional.libvirt import base as libvirt_base
-class TestLiveMigrationWithoutMultiplePortBindings(
+class TestLiveMigrationWithoutMultiplePortBindingsBase(
libvirt_base.ServersTestBase):
- """Regression test for bug 1888395.
-
- This regression test asserts that Live migration works when
- neutron does not support the binding-extended api extension
- and the legacy single port binding workflow is used.
- """
ADMIN_API = True
microversion = 'latest'
@@ -72,6 +66,16 @@ class TestLiveMigrationWithoutMultiplePortBindings(
'nova.tests.fixtures.libvirt.Domain.migrateToURI3',
self._migrate_stub))
+
+class TestLiveMigrationWithoutMultiplePortBindings(
+ TestLiveMigrationWithoutMultiplePortBindingsBase):
+ """Regression test for bug 1888395.
+
+ This regression test asserts that Live migration works when
+ neutron does not support the binding-extended api extension
+ and the legacy single port binding workflow is used.
+ """
+
def _migrate_stub(self, domain, destination, params, flags):
"""Stub out migrateToURI3."""
@@ -124,3 +128,30 @@ class TestLiveMigrationWithoutMultiplePortBindings(
server, {'OS-EXT-SRV-ATTR:host': 'end_host', 'status': 'ACTIVE'})
msg = "NotImplementedError: Cannot load 'vif_type' in the base class"
self.assertNotIn(msg, self.stdlog.logger.output)
+
+
+class TestLiveMigrationRollbackWithoutMultiplePortBindings(
+ TestLiveMigrationWithoutMultiplePortBindingsBase):
+
+ def _migrate_stub(self, domain, destination, params, flags):
+ source = self.computes['start_host']
+ conn = source.driver._host.get_connection()
+ dom = conn.lookupByUUIDString(self.server['id'])
+ dom.fail_job()
+
+ def test_live_migration_rollback(self):
+ self.server = self._create_server(
+ host='start_host',
+ networks=[{'port': self.neutron.port_1['id']}])
+
+ self.assertFalse(
+ self.neutron_api.has_port_binding_extension(self.ctxt))
+ # FIXME(artom) Until bug 1969980 is fixed, this will fail with a
+ # NotImplementedError.
+ self._live_migrate(self.server, migration_expected_state='error',
+ server_expected_state='ERROR')
+ server = self.api.get_server(self.server['id'])
+ self.assertIn(
+ "NotImplementedError: Cannot load 'vifs' in the base class",
+ server['fault']['details']
+ )