You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2010/08/09 19:18:38 UTC
[PATCH core] GoGrid Fixed (rev2)
---
.../lib/deltacloud/drivers/gogrid/gogrid_client.rb | 2 +-
.../lib/deltacloud/drivers/gogrid/gogrid_driver.rb | 25 +++++++++++--------
server/views/realms/index.html.haml | 4 +-
3 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/server/lib/deltacloud/drivers/gogrid/gogrid_client.rb b/server/lib/deltacloud/drivers/gogrid/gogrid_client.rb
index f4f5796..19fe09e 100644
--- a/server/lib/deltacloud/drivers/gogrid/gogrid_client.rb
+++ b/server/lib/deltacloud/drivers/gogrid/gogrid_client.rb
@@ -9,7 +9,7 @@ class GoGridClient
apikey='YOUR API KEY',
secret='YOUR SHARED SECRET',
format='json',
- version='1.4')
+ version='1.5')
@server = server
@secret = secret
@default_params = {'format'=>format, 'v'=>version,'api_key' => apikey}
diff --git a/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb b/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
index 72d91b6..7ef0878 100644
--- a/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
+++ b/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
@@ -91,7 +91,7 @@ class GogridDriver < Deltacloud::BaseDriver
def realms(credentials, opts=nil)
safely do
- new_client(credentials).request('common/lookup/list', { 'lookup' => 'image.type' })['list'].collect do |realm|
+ new_client(credentials).request('common/lookup/list', { 'lookup' => 'ip.datacenter' })['list'].collect do |realm|
convert_realm(realm)
end
end
@@ -115,7 +115,7 @@ class GogridDriver < Deltacloud::BaseDriver
'name' => name,
'image' => image_id,
'server.ram' => hwp.name,
- 'ip' => get_next_free_ip(credentials)
+ 'ip' => get_free_ip_from_realm(credentials, opts[:realm_id] || '1')
})['list'].first
if instance
login_data = get_login_data(client, instance[:id])
@@ -181,25 +181,25 @@ class GogridDriver < Deltacloud::BaseDriver
def reboot_instance(credentials, id)
safely do
- new_client(credentials).request('grid/server/power', { 'id' => id, 'power' => 'reboot'})
+ new_client(credentials).request('grid/server/power', { 'name' => id, 'power' => 'reboot'})
end
end
def destroy_instance(credentials, id)
safely do
- new_client(credentials).request('grid/server/delete', { 'id' => id})
+ new_client(credentials).request('grid/server/delete', { 'name' => id})
end
end
def stop_instance(credentials, id)
safely do
- new_client(credentials).request('grid/server/power', { 'id' => id, 'power' => 'off'})
+ new_client(credentials).request('grid/server/power', { 'name' => id, 'power' => 'off'})
end
end
def start_instance(credentials, id)
safely do
- new_client(credentials).request('grid/server/power', { 'id' => id, 'power' => 'on'})
+ new_client(credentials).request('grid/server/power', { 'name' => id, 'power' => 'on'})
end
end
@@ -210,8 +210,10 @@ class GogridDriver < Deltacloud::BaseDriver
def keys(credentials, opts=nil)
gogrid = new_client( credentials )
creds = []
- gogrid.request('support/password/list')['list'].each do |password|
- creds << convert_key(password)
+ safely do
+ gogrid.request('support/password/list')['list'].each do |password|
+ creds << convert_key(password)
+ end
end
return creds
end
@@ -300,7 +302,7 @@ class GogridDriver < Deltacloud::BaseDriver
:image_id => instance['image']['id'],
:instance_profile => InstanceProfile.new(hwp_name),
:name => instance['name'],
- :realm_id => instance['type']['id'],
+ :realm_id => instance['ip']['datacenter']['id'],
:state => convert_server_state(instance['state']['name'], instance['id']),
:actions => instance_actions_for(convert_server_state(instance['state']['name'], instance['id'])),
:public_addresses => [ instance['ip']['ip'] ],
@@ -319,12 +321,13 @@ class GogridDriver < Deltacloud::BaseDriver
state.eql?('Off') ? 'STOPPED' : 'RUNNING'
end
- def get_next_free_ip(credentials)
+ def get_free_ip_from_realm(credentials, realm_id)
ip = ""
safely do
ip = new_client(credentials).request('grid/ip/list', {
'ip.type' => '1',
- 'ip.state' => '1'
+ 'ip.state' => '1',
+ 'datacenter' => realm_id
})['list'].first['ip']
end
return ip
diff --git a/server/views/realms/index.html.haml b/server/views/realms/index.html.haml
index cfee320..ea4cf85 100644
--- a/server/views/realms/index.html.haml
+++ b/server/views/realms/index.html.haml
@@ -5,9 +5,9 @@
%thead
%tr
%th
- Name
+ ID
%th
- Architecture
+ Name
%th
Memory
%th
--
1.7.2