From c19007dbddc54b4948bf576351e2f800d3a79c88 Mon Sep 17 00:00:00 2001 From: hholoubk Date: Fri, 10 Oct 2025 15:25:46 +0200 Subject: [PATCH] tests/migration: Use recreate_serial_console in migration tests Refactor all migration tests to use the recreate_serial_console parameter instead of manually calling cleanup_serial_console() and create_serial_console() before wait_for_serial_login(). This simplifies serial console management when switching connection URIs during migration operations. The pattern is especially useful after migrating VMs to remote hosts where the serial console needs to be recreated to match the new connection context. Modified test categories: - Memory migration tests: migrate_mem.py - Network migration tests: migrate_network.py (3 occurrences) - Migration with panic device: migrate_with_panic_device.py - Migration with virtiofs: internally/externally launched virtiofs devices (2 files) - Migration with vTPM: shared_tpm, vtpm_dev, external_tpm (3 files) All tests now use a cleaner pattern: vm.connect_uri = dest_uri vm_session = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) Total: 8 files modified with 31 fewer lines of console management code. Depends on: avocado-framework/avocado-vt#4248 Depends on: autotest/tp-libvirt#6596 Signed-off-by: hholoubk --- libvirt/tests/src/migration/migrate_mem.py | 6 +----- libvirt/tests/src/migration/migrate_network.py | 15 +++------------ .../src/migration/migrate_with_panic_device.py | 4 +--- ...ation_with_externally_launched_virtiofs_dev.py | 4 +--- ...ation_with_internally_launched_virtiofs_dev.py | 4 +--- .../migration_with_external_tpm.py | 6 +----- .../migration_with_shared_tpm.py | 6 +----- .../migration_with_vtpm_dev.py | 6 +----- 8 files changed, 10 insertions(+), 41 deletions(-) diff --git a/libvirt/tests/src/migration/migrate_mem.py b/libvirt/tests/src/migration/migrate_mem.py index acc31c58261..5f28c232065 100644 --- a/libvirt/tests/src/migration/migrate_mem.py +++ b/libvirt/tests/src/migration/migrate_mem.py @@ -279,11 +279,7 @@ def verify_test_back_mem_nvdimm(vm, params, test): :param test: test object """ vm.connect_uri = params.get("virsh_migrate_connect_uri") - if vm.serial_console is not None: - test.log.debug("clean up old serial console") - vm.cleanup_serial_console() - vm.create_serial_console() - vm_session = vm.wait_for_serial_login(timeout=240) + vm_session = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) cmd = 'mount -o dax /dev/pmem0 /mnt' vm_session.cmd(cmd) expected_content = params.get('test_file_content') + '.back' diff --git a/libvirt/tests/src/migration/migrate_network.py b/libvirt/tests/src/migration/migrate_network.py index dac8d088b0b..3d85a8908b9 100644 --- a/libvirt/tests/src/migration/migrate_network.py +++ b/libvirt/tests/src/migration/migrate_network.py @@ -313,10 +313,7 @@ def create_fake_tap(remote_session): vm_xml.VMXML.new_from_dumpxml(vm_name)) # Check local guest network connection before migration - if vm.serial_console is not None: - vm.cleanup_serial_console() - vm.create_serial_console() - vm_session = vm.wait_for_serial_login(timeout=240) + vm_session = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) if not utils_package.package_install('dhcp-client', session=vm_session): test.error("Failed to install dhcp-client on guest.") utils_net.restart_guest_network(vm_session) @@ -343,10 +340,7 @@ def create_fake_tap(remote_session): # Check network accessibility after migration if int(mig_result.exit_status) == 0: vm.connect_uri = dest_uri - if vm.serial_console is not None: - vm.cleanup_serial_console() - vm.create_serial_console() - vm_session_after_mig = vm.wait_for_serial_login(timeout=240) + vm_session_after_mig = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) vm_session_after_mig.cmd(restart_dhclient) check_vm_network_accessed(ping_dest, session=vm_session_after_mig) @@ -393,10 +387,7 @@ def create_fake_tap(remote_session): logging.debug("VM is migrated back.") vm.connect_uri = bk_uri - if vm.serial_console is not None: - vm.cleanup_serial_console() - vm.create_serial_console() - vm_session_after_mig_bak = vm.wait_for_serial_login(timeout=240) + vm_session_after_mig_bak = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) vm_session_after_mig_bak.cmd(restart_dhclient) check_vm_network_accessed(ping_dest, vm_session_after_mig_bak) finally: diff --git a/libvirt/tests/src/migration/migrate_with_panic_device.py b/libvirt/tests/src/migration/migrate_with_panic_device.py index 3d3ba30a1d6..0ac16159602 100644 --- a/libvirt/tests/src/migration/migrate_with_panic_device.py +++ b/libvirt/tests/src/migration/migrate_with_panic_device.py @@ -57,9 +57,7 @@ def verify_test(): migration_obj.verify_default() backup_uri, vm.connect_uri = vm.connect_uri, dest_uri - vm.cleanup_serial_console() - vm.create_serial_console() - remote_vm_session = vm.wait_for_serial_login(timeout=360) + remote_vm_session = vm.wait_for_serial_login(timeout=360, recreate_serial_console=True) try: remote_vm_session.cmd("systemctl stop kdump", ignore_all_errors=True) remote_vm_session.cmd("echo 1 > /proc/sys/kernel/sysrq") diff --git a/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_externally_launched_virtiofs_dev.py b/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_externally_launched_virtiofs_dev.py index d2f2ae99d33..f818bea9875 100644 --- a/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_externally_launched_virtiofs_dev.py +++ b/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_externally_launched_virtiofs_dev.py @@ -76,9 +76,7 @@ def verify_test(): expect_str = params.get("expect_str") backup_uri, vm.connect_uri = vm.connect_uri, desturi - vm.cleanup_serial_console() - vm.create_serial_console() - vm_session = vm.wait_for_serial_login(timeout=120) + vm_session = vm.wait_for_serial_login(timeout=120, recreate_serial_console=True) output = vm_session.cmd_output("df -h") vm_session.close() test.log.debug("output: %s", output) diff --git a/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_internally_launched_virtiofs_dev.py b/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_internally_launched_virtiofs_dev.py index 798b0604d54..72f13f6e3f4 100644 --- a/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_internally_launched_virtiofs_dev.py +++ b/libvirt/tests/src/migration/migration_with_virtiofs/migration_with_internally_launched_virtiofs_dev.py @@ -64,9 +64,7 @@ def verify_test(): mnt_path_name = params.get("mnt_path_name") backup_uri, vm.connect_uri = vm.connect_uri, desturi - vm.cleanup_serial_console() - vm.create_serial_console() - vm_session = vm.wait_for_serial_login(timeout=120) + vm_session = vm.wait_for_serial_login(timeout=120, recreate_serial_console=True) output = vm_session.cmd_output("df -h") test.log.debug("output: %s", output) if not re.search(expect_str, output): diff --git a/libvirt/tests/src/migration/migration_with_vtpm/migration_with_external_tpm.py b/libvirt/tests/src/migration/migration_with_vtpm/migration_with_external_tpm.py index 91a8cc0baae..10bedbc782f 100644 --- a/libvirt/tests/src/migration/migration_with_vtpm/migration_with_external_tpm.py +++ b/libvirt/tests/src/migration/migration_with_vtpm/migration_with_external_tpm.py @@ -54,12 +54,8 @@ def check_vtpm_func(params, vm, test, on_remote=False): src_uri = params.get("virsh_migrate_connect_uri") test.log.debug("Check vtpm func: (on_remote: %s).", on_remote) if on_remote: - if vm.serial_console is not None: - vm.cleanup_serial_console() vm.connect_uri = dest_uri - if vm.serial_console is None: - vm.create_serial_console() - vm_session = vm.wait_for_serial_login(timeout=240) + vm_session = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) if not utils_package.package_install("tpm2-tools", vm_session): test.error("Failed to install tpm2-tools in vm") cmd_result = vm_session.cmd_status(tpm_cmd) diff --git a/libvirt/tests/src/migration/migration_with_vtpm/migration_with_shared_tpm.py b/libvirt/tests/src/migration/migration_with_vtpm/migration_with_shared_tpm.py index 6c5e30ed56f..584a8149d01 100644 --- a/libvirt/tests/src/migration/migration_with_vtpm/migration_with_shared_tpm.py +++ b/libvirt/tests/src/migration/migration_with_vtpm/migration_with_shared_tpm.py @@ -70,12 +70,8 @@ def check_vtpm_func(params, vm, test, remote=False): src_uri = params.get("virsh_migrate_connect_uri") test.log.debug("Check vtpm func: %s (remote).", remote) if remote: - if vm.serial_console is not None: - vm.cleanup_serial_console() vm.connect_uri = dest_uri - if vm.serial_console is None: - vm.create_serial_console() - vm_session = vm.wait_for_serial_login(timeout=240) + vm_session = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) if not utils_package.package_install("tpm2-tools", vm_session): test.error("Failed to install tpm2-tools in vm") cmd_result = vm_session.cmd_status(tpm_cmd) diff --git a/libvirt/tests/src/migration/migration_with_vtpm/migration_with_vtpm_dev.py b/libvirt/tests/src/migration/migration_with_vtpm/migration_with_vtpm_dev.py index c83f1f9a528..d2b55906816 100644 --- a/libvirt/tests/src/migration/migration_with_vtpm/migration_with_vtpm_dev.py +++ b/libvirt/tests/src/migration/migration_with_vtpm/migration_with_vtpm_dev.py @@ -31,12 +31,8 @@ def check_vtpm_func(params, vm, test, remote=False): src_uri = params.get("virsh_migrate_connect_uri") test.log.debug("Check vtpm func: %s (remote).", remote) if remote: - if vm.serial_console is not None: - vm.cleanup_serial_console() vm.connect_uri = dest_uri - if vm.serial_console is None: - vm.create_serial_console() - vm_session = vm.wait_for_serial_login(timeout=240) + vm_session = vm.wait_for_serial_login(timeout=240, recreate_serial_console=True) if not utils_package.package_install("tpm2-tools", vm_session): test.error("Failed to install tpm2-tools in vm") cmd_result = vm_session.cmd_status(tpm_cmd)