From bd8a778f8f7ccb4d22f05cde0bd80df7f06c793a Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Tue, 1 Oct 2013 16:57:39 -0700 Subject: [PATCH] Use new queues in API --- vmware-host-pooler-api | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/vmware-host-pooler-api b/vmware-host-pooler-api index 87a587d..0f32835 100755 --- a/vmware-host-pooler-api +++ b/vmware-host-pooler-api @@ -6,21 +6,27 @@ require 'redis' require 'sinatra' require 'yaml' -require File.expand_path( File.dirname( __FILE__ ), 'lib/vsphere_helper.rb' ) +$:.unshift(File.dirname(__FILE__)) +require 'lib/logger' +require 'lib/require_relative' +require 'lib/vsphere_helper' + +logger = Logger.new vsphere_helper = VsphereHelper.new -# Load the pool configuration -pools = YAML.load_file('vmware-host-pooler.yaml')[:pools] +Dir.chdir(File.dirname(__FILE__)) -# Load fog credentials -fog_file = File.expand_path("~/.fog") -fog_data = YAML.load_file(fog_file)[:default] +# Load the configuration file +config_file = File.expand_path('vmware-host-pooler.yaml') + +pools = YAML.load_file(config_file)[:pools] +vsphere = YAML.load_file(config_file)[:vsphere] # Connect to vSphere $vim = RbVmomi::VIM.connect( - :host => fog_data[:vsphere_server], - :user => fog_data[:vsphere_username], - :password => fog_data[:vsphere_password], + :host => vsphere['server'], + :user => vsphere['username'], + :password => vsphere['password'], :ssl => true, :insecure => true, :rev => '5.1' @@ -35,7 +41,7 @@ get '/vm/:template' do result = {} result[params[:template]] = {} - result[params[:template]]['hosts'] = $redis.smembers('vmware_host_pool-'+params[:template]) + result[params[:template]]['hosts'] = $redis.smembers('vmware_host_pool__ready__'+params[:template]) result.to_json end @@ -49,8 +55,11 @@ 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-'+params[:template]) - $redis.srem('vmware_host_pool-'+params[:template], vm) + 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") datacenter = $vim.serviceInstance.find_datacenter base = datacenter.hostFolder