diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a2f99a..dc20e37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/docker/Dockerfile b/docker/Dockerfile index ad3d54d..97c196f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -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"] diff --git a/lib/vmpooler/api/v1.rb b/lib/vmpooler/api/v1.rb index 2efe2cc..b10cc7b 100644 --- a/lib/vmpooler/api/v1.rb +++ b/lib/vmpooler/api/v1.rb @@ -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)