From 47ac1ed0ff7a03813326fb276509203139f825c2 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Mon, 4 Nov 2013 13:20:52 -0800 Subject: [PATCH] Parallelize VM cleanup in threads --- vmware-host-pooler | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/vmware-host-pooler b/vmware-host-pooler index f961c7c..7d9f1a6 100755 --- a/vmware-host-pooler +++ b/vmware-host-pooler @@ -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