mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -05:00
Merge pull request #320 from mattkirby/pooler_140
(POOLER-140) Ensure a running VM stays in a queue
This commit is contained in:
commit
5351c9f45e
2 changed files with 20 additions and 2 deletions
|
|
@ -68,9 +68,9 @@ module Vmpooler
|
||||||
end
|
end
|
||||||
|
|
||||||
template_backends.each do |template_backend|
|
template_backends.each do |template_backend|
|
||||||
vm = backend.spop("vmpooler__ready__#{template_backend}")
|
vm = backend.smembers("vmpooler__ready__#{template_backend}")[-1]
|
||||||
if vm
|
if vm
|
||||||
backend.sadd("vmpooler__running__#{template_backend}", vm)
|
backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__running__#{template_backend}", vm)
|
||||||
return [vm, template_backend, template]
|
return [vm, template_backend, template]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -213,6 +213,24 @@ describe Vmpooler::API::V1 do
|
||||||
expect_json(ok = true, http = 200)
|
expect_json(ok = true, http = 200)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns the first VM that was moved to the ready state when checking out a VM' do
|
||||||
|
create_ready_vm 'pool1', '1abcdefghijklmnop'
|
||||||
|
create_ready_vm 'pool1', '2abcdefghijklmnop'
|
||||||
|
create_ready_vm 'pool1', '3abcdefghijklmnop'
|
||||||
|
|
||||||
|
post "#{prefix}/vm", '{"pool1":"1"}'
|
||||||
|
|
||||||
|
expected = {
|
||||||
|
ok: true,
|
||||||
|
"pool1": {
|
||||||
|
"hostname": "1abcdefghijklmnop"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(last_response.body).to eq(JSON.pretty_generate(expected))
|
||||||
|
expect_json(ok = true, http = 200)
|
||||||
|
end
|
||||||
|
|
||||||
it 'fails when not all requested vms can be allocated' do
|
it 'fails when not all requested vms can be allocated' do
|
||||||
create_ready_vm 'pool1', '1abcdefghijklmnop'
|
create_ready_vm 'pool1', '1abcdefghijklmnop'
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue