(POOLER-70) Update check_pool for VM Provider

Previously the Pool Manager would use a single VM provider per Pool.  This
commit changes Pool Manager to use a single provider that services multiple
pools.
This commit is contained in:
Glenn Sarti 2017-03-31 14:30:00 -07:00
parent 3f6ead8134
commit 7c3ad716af
2 changed files with 22 additions and 28 deletions

View file

@ -522,18 +522,24 @@ module Vmpooler
def check_pool(pool, maxloop = 0, loop_delay = 5)
$logger.log('d', "[*] [#{pool['name']}] starting worker thread")
$providers[pool['name']] ||= Vmpooler::VsphereHelper.new $config, $metrics
$threads[pool['name']] = Thread.new do
loop_count = 1
loop do
_check_pool(pool, $providers[pool['name']])
sleep(loop_delay)
begin
loop_count = 1
provider = get_provider_for_pool(pool['name'])
raise("Could not find provider '#{pool['provider']}") if provider.nil?
loop do
_check_pool(pool, provider)
unless maxloop.zero?
break if loop_count >= maxloop
loop_count += 1
sleep(loop_delay)
unless maxloop.zero?
break if loop_count >= maxloop
loop_count += 1
end
end
rescue => err
$logger.log('s', "[!] [#{pool['name']}] Error while checking the pool: #{err}")
raise
end
end
end