You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2010/07/09 01:43:59 UTC
svn commit: r962294 -
/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
Author: lutter
Date: Thu Jul 8 23:43:59 2010
New Revision: 962294
URL: http://svn.apache.org/viewvc?rev=962294&view=rev
Log:
GoGrid driver: use a hardware profile
* Define a hardware profile for memory options. We do not report
architecture, since for GoGrid that is determined with the image
* Expect parameter hwp_id to be passed in for create_instance
* Store InstanceProfile with instance
We should eventually generate the hardware profile from the list of RAM
sizes from the server.
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=962294&r1=962293&r2=962294&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 8 23:43:59 2010
@@ -24,40 +24,10 @@ module Deltacloud
class GogridDriver < Deltacloud::BaseDriver
- # Storage capacity is same on all machines (10gb), it could be extended using 'Cloud Storage'
- define_hardware_profile('server-with-512mb-ram') do
- cpu 2
- memory 0.5
- storage 10
- architecture 'i386'
- end
-
- define_hardware_profile('server-with-1gb-ram') do
- cpu 2
- memory 1
- storage 10
- architecture 'i386'
- end
-
- define_hardware_profile('server-with-2gb-ram') do
- cpu 2
- memory 2
- storage 10
- architecture 'i386'
- end
-
- define_hardware_profile('server-with-4gb-ram') do
+ define_hardware_profile 'server' do
cpu 2
- memory 4
+ memory [512, 1024, 2048, 4096, 8192]
storage 10
- architecture 'i386'
- end
-
- define_hardware_profile('server-with-8gb-ram') do
- cpu 2
- memory 8
- storage 10
- architecture 'i386'
end
# The only valid option for flavors is server RAM for now
@@ -99,13 +69,19 @@ class GogridDriver < Deltacloud::BaseDri
end
def create_instance(credentials, image_id, opts=nil)
- flavor_id = opts[:flavor_id] || '1'
+ server_ram = nil
+ if opts[:hwp_memory]
+ mem = opts[:hwp_memory].to_i
+ server_ram = (mem == 512) ? "512MB" : "#{mem / 1024}GB"
+ else
+ server_ram = "512MB"
+ end
name = (opts[:name] && opts[:name]!='') ? opts[:name] : get_random_instance_name
safely do
- convert_instance(new_client(credentials).request('grid/server/add', {
+ convert_instance(new_client(credentials).request('grid/server/add', {
'name' => name,
'image' => image_id,
- 'server.ram' => flavor_id,
+ 'server.ram' => server_ram,
'ip' => get_next_free_ip(credentials)
})['list'].first, credentials.user)
end
@@ -122,7 +98,7 @@ class GogridDriver < Deltacloud::BaseDri
safely do
instances = new_client(credentials).request('grid/server/list')['list'].collect do |instance|
convert_instance(instance, credentials.user)
- end
+ end
end
end
instances = filter_on( instances, :state, opts )
@@ -202,11 +178,23 @@ class GogridDriver < Deltacloud::BaseDri
end
def convert_instance(instance, owner_id)
+ opts = {}
+ unless instance['ram']['id'] == "1"
+ mem = instance['ram']['name']
+ if mem == "512MB"
+ opts[:hwp_memory] = "512"
+ else
+ opts[:hwp_memory] = (mem.to_i * 1024).to_s
+ end
+ end
+ prof = InstanceProfile.new("server", opts)
+
Instance.new(
- :id => instance['id'],
+ :id => instance['name'],
:owner_id => owner_id,
:image_id => instance['image']['id'],
:flavor_id => instance['ram']['id'],
+ :instance_profile => prof,
:name => instance['name'],
:realm_id => instance['type']['id'],
:state => convert_server_state(instance['state']['name'], instance['id']),
@@ -228,7 +216,7 @@ class GogridDriver < Deltacloud::BaseDri
def get_next_free_ip(credentials)
ip = ""
safely do
- ip = new_client(credentials).request('grid/ip/list', {
+ ip = new_client(credentials).request('grid/ip/list', {
'ip.type' => '1',
'ip.state' => '1'
})['list'].first['ip']
@@ -249,5 +237,3 @@ end
end
end
end
-
-