From: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@futurfusion.io>
Introduce configure_machine, launch_source_vm and assert_dest_vm
methods to allow child classes to override some pieces of
source/dest VMs creation, start and check logic.
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@futurfusion.io>
---
tests/functional/migration.py | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/tests/functional/migration.py b/tests/functional/migration.py
index 2bfb1f77901..759906fd820 100644
--- a/tests/functional/migration.py
+++ b/tests/functional/migration.py
@@ -41,17 +41,33 @@ def assert_migration(self, src_vm, dst_vm):
self.assertEqual(dst_vm.cmd('query-status')['status'], 'running')
self.assertEqual(src_vm.cmd('query-status')['status'],'postmigrate')
+ # Can be overridden by subclasses to configure both source/dest VMs.
+ def configure_machine(self, vm):
+ vm.add_args('-nodefaults')
+
+ # Can be overridden by subclasses to prepare the source VM before migration,
+ # e.g. by running some workload inside the source VM to see if it continues
+ # to run properly after migration.
+ def launch_source_vm(self, vm):
+ vm.launch()
+
+ # Can be overridden by subclasses to check the destination VM after migration,
+ # e.g. by checking if the workload is still running after migration.
+ def assert_dest_vm(self, vm):
+ pass
+
def do_migrate(self, dest_uri, src_uri=None):
dest_vm = self.get_vm('-incoming', dest_uri, name="dest-qemu")
- dest_vm.add_args('-nodefaults')
+ self.configure_machine(dest_vm)
dest_vm.launch()
if src_uri is None:
src_uri = dest_uri
source_vm = self.get_vm(name="source-qemu")
- source_vm.add_args('-nodefaults')
- source_vm.launch()
+ self.configure_machine(source_vm)
+ self.launch_source_vm(source_vm)
source_vm.qmp('migrate', uri=src_uri)
self.assert_migration(source_vm, dest_vm)
+ self.assert_dest_vm(dest_vm)
def _get_free_port(self, ports):
port = ports.find_free_port()
--
2.47.3