mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
(POOLER-139) Fix discovering checked out VM
This commit updates how vmpooler retrieves VMs to add a VM to the running queue as soon as it is checked out. Without this change it is possible that a VM can be discovered when it is checked out before it is added to the running queue if multiple systems are requested. Additionally, the dockerfile is updated to support specifying the version of vmpooler to install.
This commit is contained in:
parent
5e4ba2bc7e
commit
3e26a8f998
3 changed files with 19 additions and 10 deletions
|
|
@ -67,22 +67,24 @@ module Vmpooler
|
|||
end
|
||||
end
|
||||
|
||||
template_backends.each do |t|
|
||||
vm = backend.spop('vmpooler__ready__' + t)
|
||||
return [vm, t, template] if vm
|
||||
template_backends.each do |template_backend|
|
||||
vm = backend.spop("vmpooler__ready__#{template_backend}")
|
||||
if vm
|
||||
backend.sadd("vmpooler__running__#{template_backend}", vm)
|
||||
return [vm, template_backend, template]
|
||||
end
|
||||
end
|
||||
[nil, nil, nil]
|
||||
end
|
||||
|
||||
def return_vm_to_ready_state(template, vm)
|
||||
backend.sadd('vmpooler__ready__' + template, vm)
|
||||
backend.smove("vmpooler__running__#{template}", "vmpooler__ready__#{template}", vm)
|
||||
end
|
||||
|
||||
def account_for_starting_vm(template, vm)
|
||||
backend.sadd('vmpooler__running__' + template, vm)
|
||||
backend.sadd('vmpooler__migrating__' + template, vm)
|
||||
backend.hset('vmpooler__active__' + template, vm, Time.now)
|
||||
backend.hset('vmpooler__vm__' + vm, 'checkout', Time.now)
|
||||
backend.sadd("vmpooler__migrating__#{template}", vm)
|
||||
backend.hset("vmpooler__active__#{template}", vm, Time.now)
|
||||
backend.hset("vmpooler__vm__#{vm}", 'checkout', Time.now)
|
||||
|
||||
if Vmpooler::API.settings.config[:auth] and has_token?
|
||||
validate_token(backend)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue