1import logging, time
2from autotest_lib.client.common_lib import error
3
4def run_system_reset_bootable(test, params, env):
5    """
6    KVM reset test:
7    1) Boot guest.
8    2) Reset system by monitor command for several times.
9    3) Log into the guest to verify it could normally boot.
10
11    @param test: kvm test object
12    @param params: Dictionary with the test parameters
13    @param env: Dictionary with test environment.
14    """
15    vm = env.get_vm(params["main_vm"])
16    vm.verify_alive()
17    timeout = float(params.get("login_timeout", 240))
18    reset_times = int(params.get("reset_times",20))
19    interval = int(params.get("reset_interval",10))
20    wait_time = int(params.get("wait_time_for_reset",60))
21
22    logging.info("Wait for %d seconds before reset" % wait_time)
23    time.sleep(wait_time)
24
25    for i in range(reset_times):
26        logging.info("Reset the system by monitor cmd")
27        vm.monitor.cmd("system_reset")
28        time.sleep(interval)
29
30    logging.info("Try to login guest after reset")
31    session = vm.wait_for_login(timeout=timeout)
32