mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -05:00
Catch ALL THE EXCEPTIONS
This commit is contained in:
parent
31df80aa7c
commit
bcfca89730
1 changed files with 59 additions and 38 deletions
|
|
@ -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
|
||||
end
|
||||
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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue