(MOB) Running tests pass

Good luck ready tester
This commit is contained in:
kirby@puppetlabs.com 2018-06-29 15:50:06 -07:00
parent b9d86c85ec
commit 481d5b215f

View file

@ -2665,6 +2665,7 @@ EOT
end end
describe '#check_running_pool_vms' do describe '#check_running_pool_vms' do
let(:pool_object) { config[:pools][0] }
let(:pool_check_response) { let(:pool_check_response) {
{:checked_running_vms => 0} {:checked_running_vms => 0}
} }
@ -2709,9 +2710,9 @@ EOT
end end
it 'should return the number of checked running VMs' do it 'should return the number of checked running VMs' do
result = subject._check_pool(pool_object,provider) subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
expect(result[:checked_running_vms]).to be(1) expect(pool_check_response[:checked_running_vms]).to be(1)
end end
it 'should use the VM lifetime in preference to defaults' do it 'should use the VM lifetime in preference to defaults' do
@ -2721,24 +2722,87 @@ EOT
# The lifetime comes in as string # The lifetime comes in as string
expect(subject).to receive(:check_running_vm).with(vm,pool,"#{big_lifetime}",provider) expect(subject).to receive(:check_running_vm).with(vm,pool,"#{big_lifetime}",provider)
subject._check_pool(pool_object,provider) subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
end end
it 'should use the configuration default if the VM lifetime is not set' do it 'should use the configuration default if the VM lifetime is not set' do
config[:config]['vm_lifetime'] = 50 config[:config]['vm_lifetime'] = 50
expect(subject).to receive(:check_running_vm).with(vm,pool,50,provider) expect(subject).to receive(:check_running_vm).with(vm,pool,50,provider)
subject._check_pool(pool_object,provider) subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
end end
it 'should use a lifetime of 12 if nothing is set' do it 'should use a lifetime of 12 if nothing is set' do
expect(subject).to receive(:check_running_vm).with(vm,pool,12,provider) expect(subject).to receive(:check_running_vm).with(vm,pool,12,provider)
subject._check_pool(pool_object,provider) subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
end
end end
end end
describe '#check_ready_pool_vms' do
let(:provider) { double('provider') }
let(:ttl) { 0 }
let(:pool_check_response) {
{:checked_ready_vms => 0}
}
let(:inventory) {
# mock response from create_inventory
{}
}
context 'Ready VM not in the inventory' do
before(:each) do
create_ready_vm(pool,vm,token)
end
it 'should not call check_ready_vm' do
expect(subject).to receive(:check_ready_vm).exactly(0).times
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
end
it 'should move the VM to completed queue' do
expect(subject).to receive(:move_vm_queue).with(pool,vm,'ready','completed',String).and_call_original
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
end
end
context 'Ready VM in the inventory' do
before(:each) do
allow(subject).to receive(:check_ready_vm)
create_ready_vm(pool,vm,token)
end
it 'should return the number of checked ready VMs' do
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
expect(pool_check_response[:checked_ready_vms]).to be(1)
end
it 'should log an error if one occurs' do
expect(subject).to receive(:check_ready_vm).and_raise(RuntimeError,'MockError')
expect(logger).to receive(:log).with('d', "[!] [#{pool}] _check_pool failed with an error while evaluating ready VMs: MockError")
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
end
it 'should use the pool TTL if set' do
big_lifetime = 2000
config[:pools][0]['ready_ttl'] = big_lifetime
expect(subject).to receive(:check_ready_vm).with(vm,pool,big_lifetime,provider)
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
end
it 'should use a pool TTL of zero if none set' do
expect(subject).to receive(:check_ready_vm).with(vm,pool,0,provider)
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
end
end
end end
describe '#_check_pool' do describe '#_check_pool' do
@ -2871,126 +2935,28 @@ EOT
end end
# RUNNING # RUNNING
# context 'Running VM not in the inventory' do context 'when checking running VMs' do
# before(:each) do let(:pool_check_response) {
# expect(provider).to receive(:vms_in_pool).with(pool).and_return(new_vm_response) {
# expect(logger).to receive(:log).with('s', "[?] [#{pool}] '#{new_vm}' added to 'discovered' queue") discovered_vms: 0,
# create_running_vm(pool,vm,token) checked_running_vms: 0,
# end checked_ready_vms: 0,
checked_pending_vms: 0,
destroyed_vms: 0,
migrated_vms: 0,
cloned_vms: 0
}
}
# it 'should not call check_running_vm' do it 'should call #check_running_pool_vms' do
# expect(subject).to receive(:check_running_vm).exactly(0).times allow(subject).to receive(:create_inventory).and_return({})
expect(subject).to receive(:check_running_pool_vms).with(pool, provider, pool_check_response, {})
# subject._check_pool(pool_object,provider) subject._check_pool(pool_object,provider)
# end end
end
# it 'should move the VM to completed queue' do
# expect(subject).to receive(:move_vm_queue).with(pool,vm,'running','completed',String).and_call_original
# subject._check_pool(pool_object,provider)
# end
# end
# context 'Running VM in the inventory' do
# before(:each) do
# expect(provider).to receive(:vms_in_pool).with(pool).and_return(vm_response)
# allow(subject).to receive(:check_running_vm)
# create_running_vm(pool,vm,token)
# end
# it 'should log an error if one occurs' do
# expect(subject).to receive(:check_running_vm).and_raise(RuntimeError,'MockError')
# expect(logger).to receive(:log).with('d', "[!] [#{pool}] _check_pool with an error while evaluating running VMs: MockError")
# subject._check_pool(pool_object,provider)
# end
# it 'should return the number of checked running VMs' do
# result = subject._check_pool(pool_object,provider)
# expect(result[:checked_running_vms]).to be(1)
# end
# it 'should use the VM lifetime in preference to defaults' do
# big_lifetime = 2000
# redis.hset("vmpooler__vm__#{vm}", 'lifetime',big_lifetime)
# # The lifetime comes in as string
# expect(subject).to receive(:check_running_vm).with(vm,pool,"#{big_lifetime}",provider)
# subject._check_pool(pool_object,provider)
# end
# it 'should use the configuration default if the VM lifetime is not set' do
# config[:config]['vm_lifetime'] = 50
# expect(subject).to receive(:check_running_vm).with(vm,pool,50,provider)
# subject._check_pool(pool_object,provider)
# end
# it 'should use a lifetime of 12 if nothing is set' do
# expect(subject).to receive(:check_running_vm).with(vm,pool,12,provider)
# subject._check_pool(pool_object,provider)
# end
# end
# READY # READY
context 'Ready VM not in the inventory' do
before(:each) do
expect(provider).to receive(:vms_in_pool).with(pool).and_return(new_vm_response)
expect(logger).to receive(:log).with('s', "[?] [#{pool}] '#{new_vm}' added to 'discovered' queue")
create_ready_vm(pool,vm,token)
end
it 'should not call check_ready_vm' do
expect(subject).to receive(:check_ready_vm).exactly(0).times
subject._check_pool(pool_object,provider)
end
it 'should move the VM to completed queue' do
expect(subject).to receive(:move_vm_queue).with(pool,vm,'ready','completed',String).and_call_original
subject._check_pool(pool_object,provider)
end
end
context 'Ready VM in the inventory' do
before(:each) do
expect(provider).to receive(:vms_in_pool).with(pool).and_return(vm_response)
allow(subject).to receive(:check_ready_vm)
create_ready_vm(pool,vm,token)
end
it 'should return the number of checked ready VMs' do
result = subject._check_pool(pool_object,provider)
expect(result[:checked_ready_vms]).to be(1)
end
it 'should log an error if one occurs' do
expect(subject).to receive(:check_ready_vm).and_raise(RuntimeError,'MockError')
expect(logger).to receive(:log).with('d', "[!] [#{pool}] _check_pool failed with an error while evaluating ready VMs: MockError")
subject._check_pool(pool_object,provider)
end
it 'should use the pool TTL if set' do
big_lifetime = 2000
config[:pools][0]['ready_ttl'] = big_lifetime
expect(subject).to receive(:check_ready_vm).with(vm,pool,big_lifetime,provider)
subject._check_pool(pool_object,provider)
end
it 'should use a pool TTL of zero if none set' do
expect(subject).to receive(:check_ready_vm).with(vm,pool,0,provider)
subject._check_pool(pool_object,provider)
end
end
# PENDING # PENDING
context 'Pending VM not in the inventory' do context 'Pending VM not in the inventory' do