-
Notifications
You must be signed in to change notification settings - Fork 173
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Multi-host: Demo of multiple hosts test
Signed-off-by: Yongxue Hong <yhong@redhat.com>
- Loading branch information
1 parent
ce74c91
commit 577c919
Showing
2 changed files
with
144 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
- multi_host_basic: | ||
virt_test_type = qemu | ||
type = multi_host_basic | ||
restart_vm = yes | ||
kill_vm = yes | ||
login_timeout = 240 | ||
check_vm_needs_restart = no # FIXME: Work around for it | ||
take_regular_screendumps = no | ||
store_vm_info = no | ||
variants: | ||
- @default: | ||
reboot = yes | ||
nodes = node1 node2 | ||
vms = vm1 vm2 | ||
serial_login = yes | ||
node_selectors_node2 = [{"key": "cpu_vendor_id", "operator": "eq", "values": "AuthenticAMD"}, | ||
node_selectors_node2 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
node_selectors_node3 = [{"key": "cpu_vendor_id", "operator": "==", "values": "AuthenticAMD"}, | ||
node_selectors_node3 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
vm_node_vm1 = node1 | ||
vm_node_vm2 = node2 | ||
mig_dest_node_vm1 = node2 | ||
mig_dest_node_vm2 = node1 | ||
nodes += " node3" | ||
vms += " vm3" | ||
node_selectors_node3 = [{"key": "cpu_vendor_id", "operator": "==", "values": "AuthenticAMD"}, | ||
node_selectors_node3 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
vm_node_vm3 = node3 | ||
- with_pool: | ||
reboot = yes | ||
nodes = node1 node2 | ||
vms = vm1 vm2 | ||
serial_login = yes | ||
node_selectors_node1 = [{"key": "cpu_vendor_id", "operator": "eq", "values": "AuthenticAMD"}, | ||
node_selectors_node1 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
node_selectors_node2 = [{"key": "cpu_vendor_id", "operator": "==", "values": "AuthenticAMD"}, | ||
node_selectors_node2 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
vm_node_vm1 = node1 | ||
vm_node_vm2 = node2 | ||
|
||
image_format = qcow2 | ||
pools = p1 p2 | ||
pool_selectors_p1 = [{"key": "access.nodes", "operator": "==", "values": ['node1']}] | ||
pool_selectors_p2 = [{"key": "access.nodes", "operator": "==", "values": ['node2']}] | ||
image_pool_name_image1_vm1 = p1 | ||
image_pool_name_image1_vm2 = p2 | ||
|
||
- with_migration: | ||
nodes = node1 node2 | ||
vms = vm1 | ||
serial_login = yes | ||
node_selectors_node1 = [{"key": "cpu_vendor_id", "operator": "eq", "values": "AuthenticAMD"}, | ||
node_selectors_node1 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
node_selectors_node2 = [{"key": "cpu_vendor_id", "operator": "==", "values": "AuthenticAMD"}, | ||
node_selectors_node2 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
vm_node_vm1 = node1 | ||
# vm_node_vm2 = node2 | ||
mig_dest_node_vm1 = node2 | ||
# mig_dest_node_vm2 = node1 | ||
# nodes += " node3" | ||
# vms += " vm3" | ||
# node_selectors_node3 = [{"key": "cpu_vendor_id", "operator": "==", "values": "AuthenticAMD"}, | ||
# node_selectors_node3 += {"key": "hostname", "operator": "contains", "values": "redhat.com"}] | ||
# vm_node_vm3 = node3 | ||
pools += " p3" | ||
pool_selectors_p3 = [{"key": "access.nodes", "operator": "==", "values": ['node3']}] | ||
image_pool_name_image1_vm3 = p3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
import time | ||
import logging | ||
|
||
from virttest import error_context | ||
from virttest import utils_test | ||
from virttest.vt_vmm.api import vmm | ||
from virttest import qemu_monitor | ||
from virttest import data_dir | ||
|
||
LOG = logging.getLogger("avocado." + __name__) | ||
|
||
|
||
@error_context.context_aware | ||
def run(test, params, env): | ||
""" | ||
:param test: QEMU test object | ||
:param params: Dictionary with the test parameters | ||
:param env: Dictionary with test environment. | ||
""" | ||
|
||
timeout = float(params.get("login_timeout", 240)) | ||
vms = env.get_all_vms() | ||
for vm in vms: | ||
# error_context.context("Try to log into guest '%s'." % vm.name, | ||
# test.log.info) | ||
# session = vm.wait_for_serial_login(timeout=timeout, status_check=False) | ||
# vm_ver = session.cmd_output("cat /proc/version") | ||
# LOG.info("Version of %s: %s", vm.name, vm_ver) | ||
# cpus_info = vm.monitor.info("cpus", debug=False) | ||
# LOG.info("CPU info of %s: %s", vm.name, cpus_info) | ||
# | ||
# if params.get("reboot") == "yes": | ||
# reboot_method = params.get("reboot_method", "shell") | ||
# session = vm.reboot(session, reboot_method, 0, timeout, True) | ||
# vm_info = session.cmd_output("uname -a") | ||
# LOG.info("Info %s: %s", vm.name, vm_info) | ||
# # blocks_info = vm.monitor.info('block') # ERROR: int exceeds XML-RPC limits | ||
# # LOG.info("Block info of %s: %s", vm.name, blocks_info) | ||
# vm.pause() | ||
# vm.resume() | ||
# session.close() | ||
|
||
vm_params = params.object_params(vm.name) | ||
src_node = vm_params.get("vm_node") | ||
dst_node = vm_params.get("mig_dest_node") | ||
if dst_node: | ||
error_context.context( | ||
f"Migrating the guest {vm.name} from {src_node} to {dst_node}", | ||
test.log.info) | ||
vm.migrate( | ||
timeout=3600, | ||
protocol="tcp", | ||
cancel_delay=None, | ||
offline=False, | ||
stable_check=False, | ||
clean=True, | ||
save_path=data_dir.get_tmp_dir(), | ||
dest_host=dst_node, | ||
remote_port=None, | ||
not_wait_for_migration=False, | ||
fd_src=None, | ||
fd_dst=None, | ||
migration_exec_cmd_src=None, | ||
migration_exec_cmd_dst=None, | ||
env=None, | ||
migrate_capabilities=None, | ||
mig_inner_funcs=None, | ||
migrate_parameters=(None, None)) | ||
|
||
error_context.context("Try to log into guest '%s'." % vm.name, | ||
test.log.info) | ||
session = vm.wait_for_serial_login(timeout=timeout, status_check=False) | ||
vm_ver = session.cmd_output("cat /proc/version") | ||
LOG.info("Version of %s: %s", vm.name, vm_ver) | ||
|
||
cpus_info = vm.monitor.info("cpus", debug=False) | ||
LOG.info("CPU info of %s: %s", vm.name, cpus_info) |