Merge pull request #318 from mattkirby/pooler_139

(POOLER-139) Fix discovering checked out VM
This commit is contained in:
Spencer McElmurry 2019-02-14 11:27:52 -06:00 committed by GitHub
commit 9405ac841c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 10 deletions

View file

@ -10,7 +10,12 @@ The format is based on
Tracking in this Changelog began for this project with the tagging of version 0.1.0.
If you're looking for changes from before this, refer to the project's
git logs & PR history.
# [Unreleased](https://github.com/puppetlabs/vmpooler/compare/0.4.0...master)
# [Unreleased](https://github.com/puppetlabs/vmpooler/compare/0.5.0...master)
# [0.5.0](https://github.com/puppetlabs/vmpooler/compare/0.4.0...0.5.0)
### Fixed
- Eliminate window for checked out VM to be discovered (POOLER-139)
# [0.4.0](https://github.com/puppetlabs/vmpooler/compare/0.3.0...0.4.0)

View file

@ -10,12 +10,14 @@
FROM jruby:9.2-jdk
ARG vmpooler_version=0.5.0
COPY docker/docker-entrypoint.sh /usr/local/bin/
ENV LOGFILE=/dev/stdout \
RACK_ENV=production
RUN gem install vmpooler && \
RUN gem install vmpooler -v ${vmpooler_version} && \
chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]

View file

@ -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)