This is useful for tests that may leave VMs in a bad state but can't afford to use kill_vm_on_error = yes. For example, timedrift.with_reboot can fail because the reboot failed or because the time drift was too large. In the latter case there's no reason to kill the VM. Signed-off-by: Michael Goldish <mgoldish@xxxxxxxxxx> --- client/tests/kvm/kvm_preprocessing.py | 12 ++++++++++++ client/tests/kvm/kvm_tests.cfg.sample | 1 + 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/client/tests/kvm/kvm_preprocessing.py b/client/tests/kvm/kvm_preprocessing.py index 26f7f8e..e624a42 100644 --- a/client/tests/kvm/kvm_preprocessing.py +++ b/client/tests/kvm/kvm_preprocessing.py @@ -293,6 +293,18 @@ def postprocess(test, params, env): int(params.get("post_command_timeout", "600")), params.get("post_command_noncritical") == "yes") + # Kill all unresponsive VMs + if params.get("kill_unresponsive_vms") == "yes": + logging.debug("'kill_unresponsive_vms' specified; killing all VMs " + "that fail to respond to a remote login request...") + for vm in kvm_utils.env_get_all_vms(env): + if vm.is_alive(): + session = vm.remote_login() + if session: + session.close() + else: + vm.destroy(gracefully=False) + # Kill the tailing threads of all VMs for vm in kvm_utils.env_get_all_vms(env): vm.kill_tail_thread() diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample index e80b645..c4d8a60 100644 --- a/client/tests/kvm/kvm_tests.cfg.sample +++ b/client/tests/kvm/kvm_tests.cfg.sample @@ -13,6 +13,7 @@ convert_ppm_files_to_png_on_error = yes #keep_ppm_files_on_error = yes kill_vm = no kill_vm_gracefully = yes +kill_unresponsive_vms = yes # Some default VM params qemu_binary = qemu -- 1.5.4.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html