From: David Lutterkort <[email protected]>
* 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.
---
.../lib/deltacloud/drivers/gogrid/gogrid_driver.rb | 66 ++++++++------------
1 files changed, 26 insertions(+), 40 deletions(-)
diff --git a/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
b/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
index 3269cef..875b876 100644
--- a/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
+++ b/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
@@ -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::BaseDriver
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::BaseDriver
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::BaseDriver
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::BaseDriver
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
-
-
--
1.6.6.1
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel