From b6f4b735e816cb95d3fe51f23b6576e0c8cae745 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Wed, 12 Feb 2014 10:46:14 -0800 Subject: [PATCH] Allow an external Redis server to be specified --- vmware-host-pooler | 4 +++- vmware-host-pooler-api | 24 ++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/vmware-host-pooler b/vmware-host-pooler index cf297bd..fbec1b2 100755 --- a/vmware-host-pooler +++ b/vmware-host-pooler @@ -18,6 +18,7 @@ $config = YAML.load_file(config_file) pools = $config[:pools] vsphere = $config[:vsphere] +redis = $config[:redis] # Load logger library $logger = Logger.new $config[:config]['logfile'] @@ -31,9 +32,10 @@ end # Set some defaults $config[:config]['task_limit'] ||= 10 $config[:config]['vm_lifetime'] ||= 24 +$config[:redis]['server'] ||= 'localhost' # Connect to Redis -$redis = Redis.new +$redis = Redis.new(:host => $config[:redis]['server']) # vSphere object $vsphere = {} diff --git a/vmware-host-pooler-api b/vmware-host-pooler-api index 49d2bde..8d7fc71 100755 --- a/vmware-host-pooler-api +++ b/vmware-host-pooler-api @@ -16,20 +16,24 @@ Dir.chdir(File.dirname(__FILE__)) # Load the configuration file config_file = File.expand_path('vmware-host-pooler.yaml') -config = YAML.load_file(config_file) +$config = YAML.load_file(config_file) -pools = config[:pools] +pools = $config[:pools] +redis = $config[:redis] # Load logger library -$logger = Logger.new config[:config]['logfile'] +$logger = Logger.new $config[:config]['logfile'] + +# Set some defaults +$config[:redis]['server'] ||= 'localhost' # Connect to Redis -$redis = Redis.new +$redis = Redis.new(:host => $config[:redis]['server']) # Sinatra! get '/' do erb :dashboard, locals: { - site_name: config[:config]['site_name'] || 'vmware-host-pooler', + site_name: $config[:config]['site_name'] || 'vmware-host-pooler', } end @@ -42,7 +46,7 @@ get '/dashboard/stats/vcloud/numbers' do result['running'] = 0 result['completed'] = 0 - config[:pools].each do |pool| + $config[:pools].each do |pool| result['pending'] += $redis.scard( 'vmware_host_pool__pending__' + pool['name'] ) result['ready'] += $redis.scard( 'vmware_host_pool__ready__' + pool['name'] ) result['running'] += $redis.scard( 'vmware_host_pool__running__' + pool['name'] ) @@ -61,18 +65,18 @@ end get '/dashboard/stats/vcloud/pool' do result = Hash.new - config[:pools].each do |pool| + $config[:pools].each do |pool| result[pool['name']] ||= Hash.new result[pool['name']]['size'] = pool['size'] result[pool['name']]['ready'] = $redis.scard( 'vmware_host_pool__ready__' + pool['name'] ) end if ( params[:history] ) - if ( config[:config]['graphite'] ) + if ( $config[:config]['graphite'] ) history ||= Hash.new begin - buffer = open( 'http://'+config[:config]['graphite']+'/render?target=vcloud.ready.*&from=-1hour&format=json' ).read + buffer = open( 'http://'+$config[:config]['graphite']+'/render?target=vcloud.ready.*&from=-1hour&format=json' ).read history = JSON.parse( buffer ) history.each do |pool| @@ -99,7 +103,7 @@ get '/dashboard/stats/vcloud/pool' do rescue end else - config[:pools].each do |pool| + $config[:pools].each do |pool| result[pool['name']] ||= Hash.new result[pool['name']]['history'] = [ $redis.scard( 'vmware_host_pool__ready__' + pool['name'] ) ] end