Quick hack to auto-destroy long-running VMs

This commit is contained in:
Scott Schneider 2013-12-04 11:15:03 -08:00
parent 7b866f788e
commit 754c27020c

View file

@ -79,6 +79,19 @@ def check_ready_vm vm, pool, ttl
} }
end end
def check_running_vm vm, pool, ttl
Thread.new {
host = $vsphere_helper.find_vms(vm)[vm]
if ((((Time.now - host.runtime.bootTime)/60).to_s[/^\d+\.\d{1}/].to_f) > ttl)
$redis.srem('vmware_host_pool__running__'+pool, vm)
$redis.sadd('vmware_host_pool__completed__'+pool, vm)
$logger.log('d', "[!] [#{pool}] '#{vm}' reached end of TTL after #{ttl} minutes")
end
}
end
# Clone a VM # Clone a VM
def clone_vm template, pool, folder, datastore def clone_vm template, pool, folder, datastore
Thread.new { Thread.new {
@ -197,6 +210,15 @@ def check_pool pool
inventory[vm['name']] = 1 inventory[vm['name']] = 1
end end
# RUNNING
$redis.smembers('vmware_host_pool__running__'+pool['name']).each do |vm|
if (! inventory[vm])
$redis.srem('vmware_host_pool__running__'+pool['name'], vm)
end
check_running_vm(vm, pool['name'], config[:config]['ttl'])
end
# READY # READY
$redis.smembers('vmware_host_pool__ready__'+pool['name']).each do |vm| $redis.smembers('vmware_host_pool__ready__'+pool['name']).each do |vm|
if (! inventory[vm]) if (! inventory[vm])