174a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtisimport logging, time 274a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtisfrom autotest_lib.client.common_lib import error 374a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 474a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtisdef run_system_reset_bootable(test, params, env): 574a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis """ 674a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis KVM reset test: 774a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 1) Boot guest. 874a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 2) Reset system by monitor command for several times. 974a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 3) Log into the guest to verify it could normally boot. 1074a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 1174a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis @param test: kvm test object 1274a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis @param params: Dictionary with the test parameters 1374a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis @param env: Dictionary with test environment. 1474a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis """ 1574a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis vm = env.get_vm(params["main_vm"]) 1674a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis vm.verify_alive() 1774a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis timeout = float(params.get("login_timeout", 240)) 1874a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis reset_times = int(params.get("reset_times",20)) 1974a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis interval = int(params.get("reset_interval",10)) 2074a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis wait_time = int(params.get("wait_time_for_reset",60)) 2174a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 2274a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis logging.info("Wait for %d seconds before reset" % wait_time) 2374a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis time.sleep(wait_time) 2474a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 2574a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis for i in range(reset_times): 2674a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis logging.info("Reset the system by monitor cmd") 2774a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis vm.monitor.cmd("system_reset") 2874a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis time.sleep(interval) 2974a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis 3074a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis logging.info("Try to login guest after reset") 3174a314b490ff542c4dd2ae4aa0d11c6394d92960Dale Curtis session = vm.wait_for_login(timeout=timeout) 32