mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-27 10:28:41 -05:00
Fix number of ends at end of file. Move update_pool_size out of repopulate_pool_vms. Remove instances of check_pool_vms within the test.
This commit is contained in:
parent
f45efb1b86
commit
6449f1aab1
2 changed files with 209 additions and 227 deletions
|
|
@ -822,37 +822,31 @@ module Vmpooler
|
|||
end
|
||||
|
||||
def repopulate_pool_vms(pool_name, provider, pool_check_response, pool_size)
|
||||
unless pool_mutex(pool_name).locked?
|
||||
ready = $redis.scard("vmpooler__ready__#{pool_name}")
|
||||
total = $redis.scard("vmpooler__pending__#{pool_name}") + ready
|
||||
return if pool_mutex(pool_name).locked?
|
||||
ready = $redis.scard("vmpooler__ready__#{pool_name}")
|
||||
total = $redis.scard("vmpooler__pending__#{pool_name}") + ready
|
||||
|
||||
$metrics.gauge("ready.#{pool_name}", $redis.scard("vmpooler__ready__#{pool_name}"))
|
||||
$metrics.gauge("running.#{pool_name}", $redis.scard("vmpooler__running__#{pool_name}"))
|
||||
$metrics.gauge("ready.#{pool_name}", $redis.scard("vmpooler__ready__#{pool_name}"))
|
||||
$metrics.gauge("running.#{pool_name}", $redis.scard("vmpooler__running__#{pool_name}"))
|
||||
|
||||
if $redis.get("vmpooler__empty__#{pool_name}")
|
||||
$redis.del("vmpooler__empty__#{pool_name}") unless ready.zero?
|
||||
elsif ready.zero?
|
||||
$redis.set("vmpooler__empty__#{pool_name}", 'true')
|
||||
$logger.log('s', "[!] [#{pool_name}] is empty")
|
||||
end
|
||||
if $redis.get("vmpooler__empty__#{pool_name}")
|
||||
$redis.del("vmpooler__empty__#{pool_name}") unless ready.zero?
|
||||
elsif ready.zero?
|
||||
$redis.set("vmpooler__empty__#{pool_name}", 'true')
|
||||
$logger.log('s', "[!] [#{pool_name}] is empty")
|
||||
end
|
||||
|
||||
# Check to see if a pool size change has been made via the configuration API
|
||||
# Since check_pool runs in a loop it does not
|
||||
# otherwise identify this change when running
|
||||
update_pool_size(pool)
|
||||
|
||||
if total < pool_size
|
||||
(1..(pool_size - total)).each do |_i|
|
||||
if $redis.get('vmpooler__tasks__clone').to_i < $config[:config]['task_limit'].to_i
|
||||
begin
|
||||
$redis.incr('vmpooler__tasks__clone')
|
||||
pool_check_response[:cloned_vms] += 1
|
||||
clone_vm(pool, provider)
|
||||
rescue => err
|
||||
$logger.log('s', "[!] [#{pool_name}] clone failed during check_pool with an error: #{err}")
|
||||
$redis.decr('vmpooler__tasks__clone')
|
||||
raise
|
||||
end
|
||||
if total < pool_size
|
||||
(1..(pool_size - total)).each do |_i|
|
||||
if $redis.get('vmpooler__tasks__clone').to_i < $config[:config]['task_limit'].to_i
|
||||
begin
|
||||
$redis.incr('vmpooler__tasks__clone')
|
||||
pool_check_response[:cloned_vms] += 1
|
||||
clone_vm(pool, provider)
|
||||
rescue => err
|
||||
$logger.log('s', "[!] [#{pool_name}] clone failed during check_pool with an error: #{err}")
|
||||
$redis.decr('vmpooler__tasks__clone')
|
||||
raise
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -894,6 +888,11 @@ module Vmpooler
|
|||
# Additionally, a pool will drain ready and pending instances
|
||||
evaluate_template(pool, provider)
|
||||
|
||||
# Check to see if a pool size change has been made via the configuration API
|
||||
# Since check_pool runs in a loop it does not
|
||||
# otherwise identify this change when running
|
||||
update_pool_size(pool)
|
||||
|
||||
repopulate_pool_vms(pool['name'], provider, pool_check_response, pool['size'])
|
||||
|
||||
# Remove VMs in excess of the configured pool size
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue