Catch ALL THE EXCEPTIONS

This commit is contained in:
Scott Schneider 2013-12-12 10:02:29 -08:00
parent 31df80aa7c
commit bcfca89730

View file

@ -186,7 +186,10 @@ def clone_vm template, pool, folder, datastore
$logger.log('s', "[+] [#{vm['template']}] '#{vm['hostname']}' cloned from '#{vm['template']}' in #{finish} seconds")
$graphite.log("vcloud.clone.#{vm['template']}", finish) if defined? $graphite
begin
$graphite.log("vcloud.clone.#{vm['template']}", finish) if defined? $graphite
rescue
end
}
end
@ -230,44 +233,52 @@ def check_pool pool
loop do
# INVENTORY
inventory = {}
base = $vsphere[pool['name']].find_pool(pool['pool'])
begin
base = $vsphere[pool['name']].find_pool(pool['pool'])
base.vm.each do |vm|
if (
(! $redis.sismember('vmware_host_pool__running__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__ready__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__pending__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__completed__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__discovered__'+pool['name'], vm['name']))
)
$redis.sadd('vmware_host_pool__discovered__'+pool['name'], vm['name'])
base.vm.each do |vm|
if (
(! $redis.sismember('vmware_host_pool__running__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__ready__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__pending__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__completed__'+pool['name'], vm['name'])) and
(! $redis.sismember('vmware_host_pool__discovered__'+pool['name'], vm['name']))
)
$redis.sadd('vmware_host_pool__discovered__'+pool['name'], vm['name'])
$logger.log('s', "[?] [#{pool['name']}] '#{vm['name']}' added to 'discovered' queue")
$logger.log('s', "[?] [#{pool['name']}] '#{vm['name']}' added to 'discovered' queue")
end
inventory[vm['name']] = 1
end
inventory[vm['name']] = 1
rescue
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)
else
if (inventory[vm])
if (pool['running_ttl'])
check_running_vm(vm, pool['name'], pool['running_ttl'])
begin
check_running_vm(vm, pool['name'], pool['running_ttl'])
rescue
end
else
check_running_vm(vm, pool['name'], '720')
begin
check_running_vm(vm, pool['name'], '720')
rescue
end
end
end
end
# READY
$redis.smembers('vmware_host_pool__ready__'+pool['name']).each do |vm|
if (! inventory[vm])
$redis.srem('vmware_host_pool__ready__'+pool['name'], vm)
else
if (inventory[vm])
if (pool['ready_ttl'])
check_ready_vm(vm, pool['name'], pool['ready_ttl'])
begin
check_ready_vm(vm, pool['name'], pool['ready_ttl'])
rescue
end
end
end
end
@ -277,16 +288,20 @@ def check_pool pool
pool['timeout'] ||= 10
if (inventory[vm])
check_pending_vm(vm, pool['name'], pool['timeout'])
begin
check_pending_vm(vm, pool['name'], pool['timeout'])
rescue
end
end
end
# COMPLETED
$redis.smembers('vmware_host_pool__completed__'+pool['name']).each do |vm|
if (! inventory[vm])
$redis.srem('vmware_host_pool__completed__'+pool['name'], vm)
else
destroy_vm(vm, pool['name'])
if (inventory[vm])
begin
destroy_vm(vm, pool['name'])
rescue
end
end
end
@ -294,18 +309,24 @@ def check_pool pool
total = $redis.scard('vmware_host_pool__ready__'+pool['name']) +
$redis.scard('vmware_host_pool__pending__'+pool['name'])
$graphite.log(
'vcloud.ready.'+pool['name'], $redis.scard('vmware_host_pool__ready__'+pool['name'])
) if defined? $graphite
begin
$graphite.log(
'vcloud.ready.'+pool['name'], $redis.scard('vmware_host_pool__ready__'+pool['name'])
) if defined? $graphite
rescue
end
if (total < pool['size'])
(1..(pool['size'] - total)).each { |i|
clone_vm(
pool['template'],
pool['pool'],
pool['folder'],
pool['datastore']
)
begin
clone_vm(
pool['template'],
pool['pool'],
pool['folder'],
pool['datastore']
)
rescue
end
}
end