From: Alexander Mikhalitsyn <[email protected]> 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 <[email protected]> --- 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
