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:40 UTC

svn commit: r962289 - in /incubator/deltacloud/trunk/server/lib/deltacloud: base_driver/base_driver.rb drivers/mock/data/instances/inst0.yml drivers/mock/data/instances/inst1.yml drivers/mock/data/instances/inst2.yml drivers/mock/mock_driver.rb

Author: lutter
Date: Thu Jul  8 23:43:40 2010
New Revision: 962289

URL: http://svn.apache.org/viewvc?rev=962289&view=rev
Log:
Mock driver: store an instance profile on instance creation

Adapt the initial data and add a sample instance that overrides a HWP
property

Added:
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst0.yml
Modified:
    incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst1.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst2.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb

Modified: incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb?rev=962289&r1=962288&r2=962289&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/base_driver/base_driver.rb Thu Jul  8 23:43:40 2010
@@ -72,6 +72,24 @@ module Deltacloud
       profiles
     end
 
+    def find_hardware_profile(credentials, name, image_id)
+      hwp = nil
+      if name
+        unless hwp = hardware_profiles(credentials, :name => name).first
+          raise BackendError.new(400, "bad-hardware-profile-name",
+            "Hardware profile '#{name}' does not exist", nil)
+        end
+      else
+        unless image = image(credentials, :id=>image_id)
+          raise BackendError.new(400, "bad-image-id",
+              "Image with ID '#{image_id}' does not exist", nil)
+        end
+        hwp = hardware_profiles(credentials,
+                                :architecture=>image.architecture).first
+      end
+      return hwp
+    end
+
     def self.define_instance_states(&block)
       machine = ::Deltacloud::StateMachine.new(&block)
       @instance_state_machine = machine

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst0.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst0.yml?rev=962289&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst0.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst0.yml Thu Jul  8 23:43:40 2010
@@ -0,0 +1,17 @@
+---
+:realm_id: us
+:public_addresses:
+- img1.inst0.public.com
+:state: RUNNING
+:name: "Mock Instance With Profile Change"
+:private_addresses:
+- img1.inst0.private.com
+:image_id: img1
+:flavor_id: m1-large
+:instance_profile: !ruby/object:InstanceProfile
+  id: m1-large
+  memory: "12288"
+:owner_id: mockuser
+:actions:
+- :reboot
+- :stop

Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst1.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst1.yml?rev=962289&r1=962288&r2=962289&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst1.yml (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst1.yml Thu Jul  8 23:43:40 2010
@@ -6,3 +6,5 @@
 :private_addresses: [ img3.inst1.private.com ]
 :flavor_id: m1-small
 :realm_id: us
+:instance_profile: !ruby/object:InstanceProfile
+  id: m1-small

Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst2.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst2.yml?rev=962289&r1=962288&r2=962289&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst2.yml (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/instances/inst2.yml Thu Jul  8 23:43:40 2010
@@ -6,3 +6,5 @@
 :private_addresses: [ img1.inst2.private.com ]
 :flavor_id: m1-small
 :realm_id: us
+:instance_profile: !ruby/object:InstanceProfile
+  id: m1-large

Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb?rev=962289&r1=962288&r2=962289&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb Thu Jul  8 23:43:40 2010
@@ -206,12 +206,7 @@ class MockDriver < Deltacloud::BaseDrive
       ( realm_id = realm.id ) if realm
     end
 
-    flavor_id = opts[:flavor_id]
-    if ( flavor_id.nil? )
-      image = image(credentials, :id=>image_id )
-      flavor = flavors(credentials, :architecture=>image.architecture).first
-      (flavor_id = flavor.id ) if flavor
-    end
+    hwp = find_hardware_profile(credentials, opts[:hwp_id], image_id)
 
     name = opts[:name] || "i-#{Time.now.to_i}"
 
@@ -222,7 +217,8 @@ class MockDriver < Deltacloud::BaseDrive
       :owner_id=>credentials.user,
       :public_addresses=>["#{image_id}.#{next_id}.public.com"],
       :private_addresses=>["#{image_id}.#{next_id}.private.com"],
-      :flavor_id=>flavor_id,
+      :flavor_id=>hwp.name,
+      :instance_profile => InstanceProfile.new(hwp.name, opts),
       :realm_id=>realm_id,
       :actions=>instance_actions_for( 'RUNNING' )
     }