Skip to content

Commit

Permalink
Merge pull request #6053 from cliping/non
Browse files Browse the repository at this point in the history
migration: Add non-live migration case
  • Loading branch information
Yingshun authored Dec 16, 2024
2 parents 07594f7 + 7765ff7 commit 32232fb
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
- migration.non_live_migration:
type = non_live_migration
migration_setup = 'yes'
storage_type = 'nfs'
setup_local_nfs = 'yes'
disk_type = "file"
disk_source_protocol = "netfs"
mnt_path_name = ${nfs_mount_dir}
# Console output can only be monitored via virsh console output
only_pty = True
take_regular_screendumps = no
# Extra options to pass after <domain> <desturi>
virsh_migrate_extra = ''
# SSH connection time out
ssh_timeout = 60
# Local URI
virsh_migrate_connect_uri = 'qemu:///system'
virsh_migrate_dest_state = "running"
image_convert = 'no'
server_ip = "${migrate_dest_host}"
server_user = "root"
server_pwd = "${migrate_dest_pwd}"
status_error = "no"
start_vm = "yes"
migrate_desturi_port = "16509"
migrate_desturi_type = "tcp"
virsh_migrate_desturi = "qemu+tcp://${migrate_dest_host}/system"
check_network_accessibility_after_mig = "yes"
variants:
- p2p:
virsh_migrate_options = "--p2p --verbose"
- non_p2p:
virsh_migrate_options = "--verbose"
variants:
- with_precopy:
expected_event_src = ["lifecycle.*Suspended Migrated", "migration-iteration.*iteration"]
- with_postcopy:
postcopy_options = "--postcopy"
status_error = "yes"
err_msg = "post-copy migration is not supported with non-live or paused migration"
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from provider.migration import base_steps
from provider.migration import migration_base


def run(test, params, env):
"""
This case is to verify that non-live vm migration can succeed.
"non-live migration" means vm is paused before its memory is migrated.
To start a non-live migration, don't add "--live" in virsh migrate option.
:param test: test object
:param params: Dictionary with the test parameters
:param env: Dictionary with test environment.
"""
vm_name = params.get("migrate_main_vm")

virsh_session = None
remote_virsh_session = None

vm = env.get_vm(vm_name)
migration_obj = base_steps.MigrationBase(test, vm, params)

try:
migration_obj.setup_connection()
virsh_session, remote_virsh_session = migration_base.monitor_event(params)
migration_obj.run_migration()
migration_obj.verify_default()
migration_base.check_event_output(params, test, virsh_session, remote_virsh_session)
finally:
migration_obj.cleanup_connection()

0 comments on commit 32232fb

Please sign in to comment.