diff --git a/spec/helpers.rb b/spec/helpers.rb index 140d9b0..890cfd1 100644 --- a/spec/helpers.rb +++ b/spec/helpers.rb @@ -27,10 +27,14 @@ def token_exists?(token) result && !result.empty? end -def create_vm(template, name) +def create_ready_vm(template, name) redis.sadd('vmpooler__ready__' + template, name) end +def create_vm(name) + redis.hset("vmpooler__vm__#{name}", 'checkout', Time.now) +end + def fetch_vm(vm) redis.hgetall("vmpooler__vm__#{vm}") end diff --git a/spec/vmpooler/api/v1/vm_spec.rb b/spec/vmpooler/api/v1/vm_spec.rb index 1038b94..ffd3c08 100644 --- a/spec/vmpooler/api/v1/vm_spec.rb +++ b/spec/vmpooler/api/v1/vm_spec.rb @@ -53,7 +53,7 @@ describe Vmpooler::API::V1 do describe 'POST /vm' do it 'returns a single VM' do clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm", '{"pool1":"1"}' expect_json(ok = true, http = 200) @@ -70,7 +70,7 @@ describe Vmpooler::API::V1 do it 'returns a single VM for an alias' do clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm", '{"poolone":"1"}' expect_json(ok = true, http = 200) @@ -94,8 +94,8 @@ describe Vmpooler::API::V1 do it 'returns multiple VMs' do clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' - create_vm 'pool2', 'qrstuvwxyz012345' + create_ready_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool2', 'qrstuvwxyz012345' post "#{prefix}/vm", '{"pool1":"1","pool2":"1"}' expect_json(ok = true, http = 200) @@ -118,7 +118,7 @@ describe Vmpooler::API::V1 do app.settings.set :config, auth: false clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm", '{"pool1":"1"}', { 'HTTP_X_AUTH_TOKEN' => 'abcdefghijklmnopqrstuvwxyz012345' @@ -143,7 +143,7 @@ describe Vmpooler::API::V1 do app.settings.set :config, auth: true clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm", '{"pool1":"1"}', { 'HTTP_X_AUTH_TOKEN' => 'abcdefghijklmnopqrstuvwxyz012345' @@ -165,7 +165,7 @@ describe Vmpooler::API::V1 do it 'does not extend VM lifetime if auth token is not provided' do app.settings.set :config, auth: true clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm", '{"pool1":"1"}' expect_json(ok = true, http = 200) diff --git a/spec/vmpooler/api/v1/vm_template_spec.rb b/spec/vmpooler/api/v1/vm_template_spec.rb index 3a09a87..cdb2e37 100644 --- a/spec/vmpooler/api/v1/vm_template_spec.rb +++ b/spec/vmpooler/api/v1/vm_template_spec.rb @@ -53,7 +53,7 @@ describe Vmpooler::API::V1 do describe 'POST /vm/:template' do it 'returns a single VM' do clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm/pool1", '' expect_json(ok = true, http = 200) @@ -70,7 +70,7 @@ describe Vmpooler::API::V1 do it 'returns a single VM for an alias' do clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm/poolone", '' @@ -94,8 +94,8 @@ describe Vmpooler::API::V1 do it 'returns multiple VMs' do clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' - create_vm 'pool2', 'qrstuvwxyz012345' + create_ready_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool2', 'qrstuvwxyz012345' post "#{prefix}/vm/pool1+pool2", '' expect_json(ok = true, http = 200) @@ -118,7 +118,7 @@ describe Vmpooler::API::V1 do app.settings.set :config, auth: true clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm/pool1", '', { 'HTTP_X_AUTH_TOKEN' => 'abcdefghijklmnopqrstuvwxyz012345' @@ -141,7 +141,7 @@ describe Vmpooler::API::V1 do app.settings.set :config, auth: true clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm/pool1", '', { 'HTTP_X_AUTH_TOKEN' => 'abcdefghijklmnopqrstuvwxyz012345' @@ -163,7 +163,7 @@ describe Vmpooler::API::V1 do it 'does not extend VM lifetime if auth token is not provided' do app.settings.set :config, auth: true clear_pool 'pool1' - create_vm 'pool1', 'abcdefghijklmnop' + create_ready_vm 'pool1', 'abcdefghijklmnop' post "#{prefix}/vm/pool1", ''