You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2011/07/29 00:52:12 UTC
svn commit: r1152030 -
/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
Author: marios
Date: Thu Jul 28 22:52:11 2011
New Revision: 1152030
URL: http://svn.apache.org/viewvc?rev=1152030&view=rev
Log:
Various bug fixes for Gogrid:
* fixes issue with realms (first realm was always reported as we
weren't filtering for :id)
* load_balancer parameters weren't being captured correctly
(inconsistency in naming from server.rb required parameters)
* adds load_balancer listener if there are no instances defined (can
still capture the load balancer listening port)
Modified:
incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb?rev=1152030&r1=1152029&r2=1152030&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb Thu Jul 28 22:52:11 2011
@@ -84,11 +84,14 @@ class GogridDriver < Deltacloud::BaseDri
end
def realms(credentials, opts=nil)
+ realms = []
+ client = new_client(credentials)
safely do
- new_client(credentials).request('common/lookup/list', { 'lookup' => 'ip.datacenter' })['list'].collect do |realm|
- convert_realm(realm)
+ client.request('common/lookup/list', { 'lookup' => 'ip.datacenter' })['list'].collect do |realm|
+ realms << convert_realm(realm)
end
end
+ realms = filter_on(realms, :id, opts)
end
def create_instance(credentials, image_id, opts={})
@@ -228,7 +231,7 @@ class GogridDriver < Deltacloud::BaseDri
if opts['instance_id']
l_instance = instance(credentials, :id => opts['instance_id'])
real_ip = {
- 'realiplist.0.port' => opts['listener_inst_port'],
+ 'realiplist.0.port' => opts['listener_instance_port'].to_i,
'realiplist.0.ip' => l_instance ? l_instance.public_addresses.first : ""
}
else
@@ -237,7 +240,7 @@ class GogridDriver < Deltacloud::BaseDri
request = {
'name' => opts['name'],
'virtualip.ip' => virtip,
- 'virtualip.port' => opts['listener_lbr_port'],
+ 'virtualip.port' => opts['listener_balancer_port'].to_i,
}
request.merge!(real_ip) if real_ip
balancer = gogrid.request('grid/loadbalancer/add', request)['list'].first
@@ -252,9 +255,7 @@ class GogridDriver < Deltacloud::BaseDri
balancer = nil
safely do
balancer = gogrid.request('grid/loadbalancer/delete', { 'name' => id })
- balancer = load_balancer(credentials, :id => id) unless balancer
end
- convert_load_balancer(credentials, balancer)
end
def load_balancers(credentials, opts={})
@@ -349,7 +350,7 @@ class GogridDriver < Deltacloud::BaseDri
def convert_load_balancer(credentials, loadbalancer)
if loadbalancer['datacenter']
- b_realm = realm(credentials, :id => loadbalancer['datacenter']['id'])
+ b_realm = realm(credentials, :id => loadbalancer['datacenter']['id'].to_s)
else
# Report first Realm until loadbalancer become ready
b_realm = realm(credentials, :id => 1)
@@ -362,15 +363,20 @@ class GogridDriver < Deltacloud::BaseDri
balancer.listeners = []
balancer.instances = []
instance_ips = []
- loadbalancer['realiplist'].each do |instance_ip|
- balancer.add_listener({
- :protocol => 'TCP',
- :load_balancer_port => loadbalancer['virtualip']['port'],
- :instance_port => instance_ip['port']
- })
- instance_ips << instance_ip['ip']['ip']
- end if loadbalancer['realiplist']
- balancer.instances = get_load_balancer_instances(instance_ips, loadbalancer['instances'])
+ if loadbalancer['realiplist'].size > 0
+ loadbalancer['realiplist'].each do |instance_ip|
+ balancer.add_listener({
+ :protocol => 'TCP',
+ :load_balancer_port => loadbalancer['virtualip']['port'],
+ :instance_port => instance_ip['port']
+ })
+ instance_ips << instance_ip['ip']['ip']
+ end
+ else
+ balancer.add_listener({:protocol=>'TCP', :load_balancer_port =>loadbalancer['virtualip']['port'],
+ :instance_port => "unassigned"})
+ end
+ balancer.instances = get_load_balancer_instances(instance_ips, loadbalancer['instances']) if loadbalancer['instances']
return balancer
end
@@ -425,7 +431,7 @@ class GogridDriver < Deltacloud::BaseDri
def convert_realm(realm)
Realm.new(
- :id => realm['id'],
+ :id => realm['id'].to_s,
:name => realm['name'],
:state => :unlimited,
:storage => :unlimited