Catch ALL THE EXCEPTIONS

This commit is contained in:
Scott Schneider 2013-12-12 10:02:29 -08:00
parent bac80108b2
commit bcd90bde75

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