mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
remove 'last minute' tcp vm_ready check from the api for pooled vms
the vm_ready methods should be implemented per provider and checking in the api creates issues since provider code is not available. Removing this for the V2 api
This commit is contained in:
parent
dd375b20c3
commit
a2d613782a
4 changed files with 9 additions and 40 deletions
|
|
@ -73,9 +73,6 @@ module Vmpooler
|
||||||
next if vms.empty?
|
next if vms.empty?
|
||||||
|
|
||||||
vms.reverse.each do |vm|
|
vms.reverse.each do |vm|
|
||||||
vm_domain = Parsing.get_domain_for_pool(full_config, template_backend)
|
|
||||||
ready = vm_ready?(vm, vm_domain)
|
|
||||||
if ready
|
|
||||||
smoved = backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__running__#{template_backend}", vm)
|
smoved = backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__running__#{template_backend}", vm)
|
||||||
if smoved
|
if smoved
|
||||||
return [vm, template_backend, template]
|
return [vm, template_backend, template]
|
||||||
|
|
@ -83,10 +80,6 @@ module Vmpooler
|
||||||
metrics.increment("checkout.smove.failed.#{template_backend}")
|
metrics.increment("checkout.smove.failed.#{template_backend}")
|
||||||
return [nil, nil, nil]
|
return [nil, nil, nil]
|
||||||
end
|
end
|
||||||
else
|
|
||||||
backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__completed__#{template_backend}", vm)
|
|
||||||
metrics.increment("checkout.nonresponsive.#{template_backend}")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
[nil, nil, nil]
|
[nil, nil, nil]
|
||||||
|
|
|
||||||
|
|
@ -124,8 +124,7 @@ describe Vmpooler::API::V1 do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 503 for empty pool referenced by alias' do
|
it 'returns 503 for empty pool referenced by alias' do
|
||||||
create_ready_vm 'pool1', vmname, redis
|
create_ready_vm 'pool2', vmname, redis
|
||||||
post "#{prefix}/vm/poolone"
|
|
||||||
post "#{prefix}/vm/poolone"
|
post "#{prefix}/vm/poolone"
|
||||||
|
|
||||||
expected = { ok: false }
|
expected = { ok: false }
|
||||||
|
|
|
||||||
|
|
@ -129,8 +129,7 @@ describe Vmpooler::API::V2 do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 503 for empty pool referenced by alias' do
|
it 'returns 503 for empty pool referenced by alias' do
|
||||||
create_ready_vm 'pool1', vmname, redis
|
create_ready_vm 'pool2', vmname, redis
|
||||||
post "#{prefix}/vm/poolone"
|
|
||||||
post "#{prefix}/vm/poolone"
|
post "#{prefix}/vm/poolone"
|
||||||
|
|
||||||
expected = { ok: false }
|
expected = { ok: false }
|
||||||
|
|
@ -342,28 +341,6 @@ describe Vmpooler::API::V2 do
|
||||||
expect(pool_has_ready_vm?('pool1', '2abcdefghijklmnop', redis)).to eq(true)
|
expect(pool_has_ready_vm?('pool1', '2abcdefghijklmnop', redis)).to eq(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns the second VM when the first fails to respond' do
|
|
||||||
create_ready_vm 'pool1', vmname, redis
|
|
||||||
create_ready_vm 'pool1', "2#{vmname}", redis
|
|
||||||
|
|
||||||
allow_any_instance_of(Vmpooler::API::Helpers).to receive(:open_socket).with(vmname, 'one.example.com').and_raise('mockerror')
|
|
||||||
allow_any_instance_of(Vmpooler::API::Helpers).to receive(:open_socket).with("2#{vmname}", 'one.example.com').and_return(socket)
|
|
||||||
|
|
||||||
post "#{prefix}/vm", '{"pool1":"1"}'
|
|
||||||
expect_json(ok = true, http = 200)
|
|
||||||
|
|
||||||
expected = {
|
|
||||||
ok: true,
|
|
||||||
pool1: {
|
|
||||||
hostname: "2#{vmname}.one.example.com"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
expect(last_response.body).to eq(JSON.pretty_generate(expected))
|
|
||||||
|
|
||||||
expect(pool_has_ready_vm?('pool1', vmname, redis)).to be false
|
|
||||||
end
|
|
||||||
|
|
||||||
context '(auth not configured)' do
|
context '(auth not configured)' do
|
||||||
it 'does not extend VM lifetime if auth token is provided' do
|
it 'does not extend VM lifetime if auth token is provided' do
|
||||||
app.settings.set :config, auth: false
|
app.settings.set :config, auth: false
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ describe Vmpooler::API::V2 do
|
||||||
pools: [
|
pools: [
|
||||||
{'name' => 'pool1', 'size' => 5},
|
{'name' => 'pool1', 'size' => 5},
|
||||||
{'name' => 'pool2', 'size' => 10},
|
{'name' => 'pool2', 'size' => 10},
|
||||||
{'name' => 'poolone', 'size' => 0}
|
{'name' => 'poolone', 'size' => 1}
|
||||||
],
|
],
|
||||||
statsd: { 'prefix' => 'stats_prefix'},
|
statsd: { 'prefix' => 'stats_prefix'},
|
||||||
alias: { 'poolone' => 'pool1' },
|
alias: { 'poolone' => 'pool1' },
|
||||||
|
|
@ -105,7 +105,7 @@ describe Vmpooler::API::V2 do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 503 for empty pool referenced by alias' do
|
it 'returns 503 for empty pool referenced by alias' do
|
||||||
create_ready_vm 'pool1', 'abcdefghijklmnop', redis
|
create_ready_vm 'pool2', 'abcdefghijklmnop', redis
|
||||||
post "#{prefix}/vm/poolone"
|
post "#{prefix}/vm/poolone"
|
||||||
|
|
||||||
expected = { ok: false }
|
expected = { ok: false }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue