Parallelize VM cleanup in threads

This commit is contained in:
Scott Schneider 2013-11-04 13:20:52 -08:00
parent 3859eb85c2
commit 47ac1ed0ff

View file

@ -93,6 +93,30 @@ def clone_vm template, pool, folder, datastore
}
end
# Destroy a VM
def destroy_vm vm
Thread.new {
host = $vsphere_helper.find_vms(vm)[vm]
if (
(host) and
(host.runtime)
)
start = Time.now
if host.runtime.powerState == 'poweredOn'
$logger.log('d', "[ ] '#{vm}' is being shut down")
host.PowerOffVM_Task.wait_for_completion
end
host.Destroy_Task.wait_for_completion
finish = '%.2f' % (Time.now-start)
$logger.log('s', "[-] '#{vm}' destroyed in #{finish} seconds")
end
}
end
# Update loop
@ -202,24 +226,7 @@ loop do
$redis.srem('vmware_host_pool__completed__'+pool['name'], vm)
end
host = $vsphere_helper.find_vms(vm)[vm]
if (
(host) and
(host.runtime)
)
start = Time.now
if host.runtime.powerState == 'poweredOn'
$logger.log('d', "[ ] '#{vm}' is being shut down")
host.PowerOffVM_Task.wait_for_completion
end
host.Destroy_Task.wait_for_completion
finish = '%.2f' % (Time.now-start)
$logger.log('s', "[-] '#{vm}' destroyed in #{finish} seconds")
end
destroy_vm(vm)
end
# Check 'failed' pool