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:22:21 UTC
svn commit: r962091 - in /incubator/deltacloud/trunk/client-ruby:
lib/deltacloud.rb lib/models/instance.rb specs/fixtures/instances/inst1.yml
specs/fixtures/instances/inst2.yml specs/instances_spec.rb
Author: lutter
Date: Thu Jul 8 23:22:21 2010
New Revision: 962091
URL: http://svn.apache.org/viewvc?rev=962091&view=rev
Log:
Adjust create_instance to take opts hash to account for optionality of flavor/realm.
Modified:
incubator/deltacloud/trunk/client-ruby/lib/deltacloud.rb
incubator/deltacloud/trunk/client-ruby/lib/models/instance.rb
incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst1.yml
incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst2.yml
incubator/deltacloud/trunk/client-ruby/specs/instances_spec.rb
Modified: incubator/deltacloud/trunk/client-ruby/lib/deltacloud.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client-ruby/lib/deltacloud.rb?rev=962091&r1=962090&r2=962091&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client-ruby/lib/deltacloud.rb (original)
+++ incubator/deltacloud/trunk/client-ruby/lib/deltacloud.rb Thu Jul 8 23:22:21 2010
@@ -192,8 +192,16 @@ class DeltaCloud
nil
end
- def create_instance(image_id, flavor_id)
- request( entry_points[:instances], :post, {}, { 'image_id'=>image_id, 'flavor_id'=>flavor_id} ) do |response|
+ def create_instance(image_id, opts={})
+ realm_id = opts[:realm]
+ flavor_id = opts[:flavor]
+
+ params = {}
+ ( params[:realm_id] = realm_id ) if realm_id
+ ( params[:flavor_id] = flavor_id ) if flavor_id
+
+ params[:image_id] = image_id
+ request( entry_points[:instances], :post, {}, params ) do |response|
if ( response.is_a?( Net::HTTPSuccess ) )
doc = REXML::Document.new( response.body )
instance = doc.root
Modified: incubator/deltacloud/trunk/client-ruby/lib/models/instance.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client-ruby/lib/models/instance.rb?rev=962091&r1=962090&r2=962091&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client-ruby/lib/models/instance.rb (original)
+++ incubator/deltacloud/trunk/client-ruby/lib/models/instance.rb Thu Jul 8 23:22:21 2010
@@ -12,6 +12,7 @@ class Instance < BaseModel
attribute :actions
attribute :image
attribute :flavor
+ attribute :realm
def initialize(client, uri, xml=nil)
super( client, uri, xml )
@@ -33,6 +34,8 @@ class Instance < BaseModel
@image = Image.new( @client, image_uri )
flavor_uri = xml.get_elements( 'flavor' )[0].attributes['href']
@flavor = Flavor.new( @client, flavor_uri )
+ realm_uri = xml.get_elements( 'realm' )[0].attributes['href']
+ @realm = Realm.new( @client, realm_uri )
@state = xml.text( 'state' )
@actions = []
xml.get_elements( 'actions/link' ).each do |link|
Modified: incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst1.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst1.yml?rev=962091&r1=962090&r2=962091&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst1.yml (original)
+++ incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst1.yml Thu Jul 8 23:22:21 2010
@@ -4,3 +4,4 @@
:public_addresses: [ img3.inst1.public.com ]
:private_addresses: [ img3.inst1.private.com ]
:flavor_id: m1-small
+:realm_id: us
Modified: incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst2.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst2.yml?rev=962091&r1=962090&r2=962091&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst2.yml (original)
+++ incubator/deltacloud/trunk/client-ruby/specs/fixtures/instances/inst2.yml Thu Jul 8 23:22:21 2010
@@ -4,3 +4,4 @@
:public_addresses: [ img1.inst2.public.com ]
:private_addresses: [ img1.inst2.private.com ]
:flavor_id: m1-small
+:realm_id: us
Modified: incubator/deltacloud/trunk/client-ruby/specs/instances_spec.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client-ruby/specs/instances_spec.rb?rev=962091&r1=962090&r2=962091&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client-ruby/specs/instances_spec.rb (original)
+++ incubator/deltacloud/trunk/client-ruby/specs/instances_spec.rb Thu Jul 8 23:22:21 2010
@@ -58,17 +58,51 @@ describe "instances" do
end
end
- it "should allow creation of new instances" do
+ it "should allow creation of new instances with reasonable defaults" do
DeltaCloud.new( API_NAME, API_PASSWORD, API_URL ) do |client|
- instance = client.create_instance( 'img1', 'm1-small' )
+ instance = client.create_instance( 'img1' )
instance.should_not be_nil
instance.uri.should eql( API_URL + '/instances/inst3' )
instance.id.should eql( 'inst3' )
+ instance.image.id.should eql( 'img1' )
+ instance.flavor.id.should eql( 'm1-large' )
+ instance.realm.id.should eql( 'us' )
+ end
+ end
+
+ it "should allow creation of new instances with specific realm" do
+ DeltaCloud.new( API_NAME, API_PASSWORD, API_URL ) do |client|
+ instance = client.create_instance( 'img1', :realm=>'eu' )
+ instance.should_not be_nil
+ instance.uri.should eql( API_URL + '/instances/inst3' )
+ instance.id.should eql( 'inst3' )
+ instance.image.id.should eql( 'img1' )
+ instance.flavor.id.should eql( 'm1-large' )
+ instance.realm.id.should eql( 'eu' )
+ end
+ end
- instance = client.create_instance( 'img1', 'm1-small' )
+ it "should allow creation of new instances with specific flavor" do
+ DeltaCloud.new( API_NAME, API_PASSWORD, API_URL ) do |client|
+ instance = client.create_instance( 'img1', :flavor=>'m1-xlarge' )
instance.should_not be_nil
- instance.uri.should eql( API_URL + '/instances/inst4' )
- instance.id.should eql( 'inst4' )
+ instance.uri.should eql( API_URL + '/instances/inst3' )
+ instance.id.should eql( 'inst3' )
+ instance.image.id.should eql( 'img1' )
+ instance.flavor.id.should eql( 'm1-xlarge' )
+ instance.realm.id.should eql( 'us' )
+ end
+ end
+
+ it "should allow creation of new instances with specific realm and flavor" do
+ DeltaCloud.new( API_NAME, API_PASSWORD, API_URL ) do |client|
+ instance = client.create_instance( 'img1', :realm=>'eu', :flavor=>'m1-xlarge' )
+ instance.should_not be_nil
+ instance.uri.should eql( API_URL + '/instances/inst3' )
+ instance.id.should eql( 'inst3' )
+ instance.image.id.should eql( 'img1' )
+ instance.flavor.id.should eql( 'm1-xlarge' )
+ instance.realm.id.should eql( 'eu' )
end
end