From 2febc9fcff4964e6681cd093705e6cb9373e6fb7 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 6 Nov 2011 18:45:49 -0800 Subject: [PATCH] Isolated environment removes virtual machines after run. --- test/acceptance/helpers/isolated_environment.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/acceptance/helpers/isolated_environment.rb b/test/acceptance/helpers/isolated_environment.rb index 58cde9022..46882e848 100644 --- a/test/acceptance/helpers/isolated_environment.rb +++ b/test/acceptance/helpers/isolated_environment.rb @@ -109,6 +109,23 @@ module Acceptance # Closes the environment, cleans up the temporary directories, etc. def close + # Delete all virtual machines + @logger.debug("Finding all virtual machines") + execute("VBoxManage", "list", "vms").stdout.lines.each do |line| + data = /^"(?.+?)" {(?.+?)}$/.match(line) + + @logger.debug("Removing VM: #{data[:name]}") + result = execute("VBoxManage", "controlvm", data[:uuid], "poweroff") + raise Exception, "VM halt failed!" if result.exit_status != 0 + + sleep 0.5 + + result = execute("VBoxManage", "unregistervm", data[:uuid], "--delete") + raise Exception, "VM unregistration failed!" if result.exit_status != 0 + end + + @logger.info("Removed all virtual machines") + # Delete the temporary directory @logger.info("Removing isolated environment: #{@tempdir.path}") FileUtils.rm_rf(@tempdir.path)