Merge pull request #418 from mattkirby/pooler_191

(POOLER-191) Add checking for running instances that are not in active
This commit is contained in:
Samuel 2020-10-14 13:14:51 -05:00 committed by GitHub
commit e600336a7e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 13 deletions

View file

@ -289,19 +289,15 @@ module Vmpooler
move_vm_queue(pool, vm, 'running', 'completed', redis, "reached end of TTL after #{ttl} hours")
throw :stop_checking
end
end
if provider.vm_ready?(pool, vm)
throw :stop_checking
else
host = provider.get_vm(pool, vm)
if host
throw :stop_checking
else
move_vm_queue(pool, vm, 'running', 'completed', redis, 'is no longer in inventory, removing from running')
end
move_vm_queue(pool, vm, 'running', 'completed', redis, 'is listed as running, but has no checkouttime data. Removing from running')
end
throw :stop_checking if provider.vm_ready?(pool, vm)
throw :stop_checking if provider.get_vm(pool, vm)
move_vm_queue(pool, vm, 'running', 'completed', redis, 'is no longer in inventory, removing from running')
end
end
end

View file

@ -647,12 +647,20 @@ EOT
end
context 'valid host' do
it 'should not move VM if it has no checkout time' do
it 'should kill a VM if it has no checkout time' do
redis_connection_pool.with do |redis|
expect(provider).to receive(:vm_ready?).and_return(true)
expect(redis.sismember("vmpooler__running__#{pool}", vm)).to be(true)
subject._check_running_vm(vm, pool, 0, provider)
expect(redis.sismember("vmpooler__running__#{pool}", vm)).to be(true)
expect(redis.sismember("vmpooler__running__#{pool}", vm)).to be(false)
end
end
it 'should log a message when the machine is removed due to no active data' do
redis_connection_pool.with do |redis|
expect(provider).to receive(:vm_ready?).and_return(true)
expect(logger).to receive(:log).with('d',"[!] [#{pool}] '#{vm}' is listed as running, but has no checkouttime data. Removing from running")
subject._check_running_vm(vm, pool, 0, provider)
end
end