diff --git a/lib/vmpooler.rb b/lib/vmpooler.rb index ef820da..81fcd12 100644 --- a/lib/vmpooler.rb +++ b/lib/vmpooler.rb @@ -1,6 +1,7 @@ require 'rubygems' unless defined?(Gem) module Vmpooler + require 'date' require 'json' require 'open-uri' require 'rbvmomi' diff --git a/lib/vmpooler/api.rb b/lib/vmpooler/api.rb index e0e29dd..2c4abbd 100644 --- a/lib/vmpooler/api.rb +++ b/lib/vmpooler/api.rb @@ -172,7 +172,6 @@ module Vmpooler content_type :json result = {} - clone_times = [] result['capacity_current'] = 0 result['capacity_total'] = 0 @@ -189,23 +188,17 @@ module Vmpooler result['empty'] ||= [] result['empty'].push( pool['name'] ) end - - $redis.smembers( 'vmpooler__ready__'+pool['name'] ).each do |vm| - clone_time = $redis.hget( 'vmpooler__vm__'+vm, 'clone_time' ) - clone_times.push( clone_time ) if clone_time.to_f > 0 - end end if ( result['empty'] ) result['status'] = 0 end - if ( clone_times.any? ) - result['clone_average'] = clone_times.map( &:to_f ).reduce( :+ ) / clone_times.size - end - result['capacity_perecent'] = ( result['capacity_current'].to_f / result['capacity_total'].to_f ) * 100.0 + result['clone_total'] = $redis.hlen('vmpooler__clone__'+Date.today.to_s) + result['clone_average'] = $redis.hvals('vmpooler__clone__'+Date.today.to_s).map( &:to_f ).reduce( :+ ) / result['clone_total'] + JSON.pretty_generate(Hash[result.sort_by{|k,v| k}]) end diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index 07762fe..5f73c5f 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -230,6 +230,7 @@ module Vmpooler ).wait_for_completion finish = '%.2f' % (Time.now-start) + $redis.hset('vmpooler__clone__'+Date.today.to_s, vm['hostname'], finish) $redis.hset('vmpooler__vm__'+vm['hostname'], 'clone_time', finish) $logger.log('s', "[+] [#{vm['template']}] '#{vm['hostname']}' cloned from '#{vm['template']}' in #{finish} seconds")