From: David Lutterkort <[email protected]>

  - Query list of hardware profiles form Rackspace
  - Expect parameter hwp_id for create_instance
  - Store InstanceProfile with instances
---
 .../drivers/rackspace/rackspace_driver.rb          |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb 
b/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb
index 2dd34b8..2b7aa44 100644
--- a/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb
+++ b/server/lib/deltacloud/drivers/rackspace/rackspace_driver.rb
@@ -41,6 +41,18 @@ class RackspaceDriver < Deltacloud::BaseDriver
     results
   end
 
+  def hardware_profiles(credentials, opts = nil)
+    racks = new_client( credentials )
+    results = racks.list_flavors.map do |flav|
+      HardwareProfile.new(flav["id"].to_s) do
+        architecture 'x86_64'
+        memory flav["ram"].to_i
+        storage flav["disk"].to_i
+      end
+    end
+    filter_hardware_profiles(results, opts)
+  end
+
   def images(credentials, opts=nil)
     racks = new_client( credentials )
     results = racks.list_images.map do |img|
@@ -87,11 +99,10 @@ class RackspaceDriver < Deltacloud::BaseDriver
   #
   def create_instance(credentials, image_id, opts)
     racks = new_client( credentials )
-    flavor_id = 1
-    if (opts[:flavor_id]) then flavor_id = opts[:flavor_id] end
+    hwp_id = opts[:hwp_id] || 1
     name = Time.now.to_s
     if (opts[:name]) then name = opts[:name] end
-    convert_srv_to_instance(racks.start_server(image_id, flavor_id, name))
+    convert_srv_to_instance(racks.start_server(image_id, hwp_id, name))
   end
 
   #
@@ -123,6 +134,7 @@ class RackspaceDriver < Deltacloud::BaseDriver
     inst.actions = instance_actions_for(inst.state)
     inst.image_id = srv["imageId"].to_s
     inst.flavor_id = srv["flavorId"].to_s
+    inst.instance_profile = InstanceProfile.new(srv["flavorId"].to_s)
     if srv["addresses"]
       inst.public_addresses  = srv["addresses"]["public"]
       inst.private_addresses = srv["addresses"]["private"]
-- 
1.6.6.1

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to