diff --git a/vmware-host-pooler-api b/vmware-host-pooler-api index ad52bc3..a1799d4 100755 --- a/vmware-host-pooler-api +++ b/vmware-host-pooler-api @@ -60,14 +60,18 @@ post '/vm/:template' do if ( ( ! params[:folder] ) or ( ! params[:pool] )) result[params[:template]]['error'] = 'You must specify a destination \'folder\' and \'pool\'' else - vm = $redis.srandmember('vmware_host_pool__ready__'+params[:template]) - $redis.srem('vmware_host_pool__ready__'+params[:template], vm) - $redis.sadd('vmware_host_pool__running__'+params[:template], vm) + if ( $redis.scard('vmware_host_pool__ready__'+params[:template]) > 0 ) + vm = $redis.srandmember('vmware_host_pool__ready__'+params[:template]) + $redis.srem('vmware_host_pool__ready__'+params[:template], vm) + $redis.sadd('vmware_host_pool__running__'+params[:template], vm) - logger.log('s', "[<] '#{vm}' moved to 'running' queue") + logger.log('s', "[<] '#{vm}' moved to 'running' queue") - result[params[:template]]['ok'] = 'true' - result[params[:template]]['hostname'] = vm + result[params[:template]]['ok'] = 'true' + result[params[:template]]['hostname'] = vm + else + result[params[:template]]['ok'] = 'false' + end end JSON.pretty_generate(result)