From e4062dc005bd78c47a41c021d85c80bb607e7b65 Mon Sep 17 00:00:00 2001 From: "kirby@puppetlabs.com" Date: Fri, 8 May 2020 14:39:25 -0700 Subject: [PATCH] Remove unreasonable ttl of 0 concept for a ready vm --- lib/vmpooler.rb | 2 +- lib/vmpooler/api/v1.rb | 4 ++ lib/vmpooler/pool_manager.rb | 41 +++++++++--------- spec/unit/pool_manager_spec.rb | 79 +++++++++++++++++----------------- 4 files changed, 65 insertions(+), 61 deletions(-) diff --git a/lib/vmpooler.rb b/lib/vmpooler.rb index e5932d6..28aa323 100644 --- a/lib/vmpooler.rb +++ b/lib/vmpooler.rb @@ -64,7 +64,7 @@ module Vmpooler parsed_config[:config]['vm_checktime'] = string_to_int(ENV['VM_CHECKTIME']) || parsed_config[:config]['vm_checktime'] || 1 parsed_config[:config]['vm_lifetime'] = string_to_int(ENV['VM_LIFETIME']) || parsed_config[:config]['vm_lifetime'] || 24 parsed_config[:config]['ready_ttl'] = string_to_int(ENV['READY_TTL']) || parsed_config[:config]['ready_ttl'] || 5 - parsed_config[:config]['ondemand_request_ttl'] = string_to_int(ENV['ONDEMAND_REQUEST_TTL']) || parsed_config[:config]['ready_ttl'] || 5 + parsed_config[:config]['ondemand_request_ttl'] = string_to_int(ENV['ONDEMAND_REQUEST_TTL']) || parsed_config[:config]['ondemand_request_ttl'] || 5 parsed_config[:config]['prefix'] = ENV['PREFIX'] || parsed_config[:config]['prefix'] || '' parsed_config[:config]['logfile'] = ENV['LOGFILE'] if ENV['LOGFILE'] diff --git a/lib/vmpooler/api/v1.rb b/lib/vmpooler/api/v1.rb index 348debc..188a5aa 100644 --- a/lib/vmpooler/api/v1.rb +++ b/lib/vmpooler/api/v1.rb @@ -934,6 +934,10 @@ module Vmpooler result[pool_alias] = { 'hostname': instances } end status 200 + elsif request_hash['status'] == 'failed' + result['ready'] = false + result['message'] = "The request failed to provision instances within the configured ondemand_request_ttl '#{config['ondemand_request_ttl']}'" + status 200 else platform_parts = request_hash['requested'].split(',') platform_parts.each do |platform| diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index 5a0e762..f92409c 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -111,7 +111,6 @@ module Vmpooler def fail_pending_vm(vm, pool, timeout, redis, exists = true) clone_stamp = redis.hget("vmpooler__vm__#{vm}", 'clone') - return true unless clone_stamp time_since_clone = (Time.now - Time.parse(clone_stamp)) / 60 if time_since_clone > timeout @@ -139,16 +138,16 @@ module Vmpooler finish = format('%