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:44 UTC
svn commit: r962290 -
/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
Author: lutter
Date: Thu Jul 8 23:43:43 2010
New Revision: 962290
URL: http://svn.apache.org/viewvc?rev=962290&view=rev
Log:
EC2 Driver: use hardware profiles
* Define hardware profiles equivalent to the flavors
* Expect parameter hwp_id to be passed in for create_instance
* Store InstanceProfile with instance
Modified:
incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb?rev=962290&r1=962289&r2=962290&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb Thu Jul 8 23:43:43 2010
@@ -64,39 +64,53 @@ class EC2Driver < Deltacloud::BaseDriver
define_hardware_profile('m1-small') do
cpu 1
- memory 1.7
+ memory 1.7 * 1024
storage 160
architecture 'i386'
end
define_hardware_profile('m1-large') do
- cpu 2
- memory (7.5..15)
- storage [ 850, 1024 ]
+ cpu 4
+ memory 7.5 * 1024
+ storage 850
architecture 'x86_64'
end
define_hardware_profile('m1-xlarge') do
- cpu 2
- memory 15
+ cpu 8
+ memory 15 * 1024
storage 1690
architecture 'x86_64'
end
define_hardware_profile('c1-medium') do
- cpu 2
- memory 1.7
+ cpu 5
+ memory 1.7 * 1024
storage 350
- architecture 'x86_64'
+ architecture 'i386'
end
define_hardware_profile('c1-xlarge') do
- cpu 2
- memory 7
+ cpu 20
+ memory 7 * 1024
storage 1690
architecture 'x86_64'
end
+ define_hardware_profile('m2-xlarge') do
+ cpu 6.5
+ memory 17.1 * 1024
+ storage 420
+ architecture 'x86_64'
+ end
+
+ define_hardware_profile('m2-2xlarge') do
+ cpu 13
+ memory 34.2 * 1024
+ storage 850
+ architecture 'x86_64'
+ end
+
define_instance_states do
start.to( :pending ) .automatically
pending.to( :running ) .automatically
@@ -188,13 +202,7 @@ class EC2Driver < Deltacloud::BaseDriver
def create_instance(credentials, image_id, opts)
ec2 = new_client( credentials )
realm_id = opts[:realm_id]
- flavor_id = opts[:flavor_id]
- unless ( flavor_id )
- image = image(credentials, :id=>image_id )
- flavor = flavor( credentials, :architecture=>image.architecture )
- ( flavor_id = flavor.id ) if ( flavor )
- end
- flavor_id.gsub!( /-/, '.' ) if flavor_id
+ hwp = find_hardware_profile(credentials, opts[:hwp_id], image_id)
ec2_instances = ec2.run_instances(
image_id,
1,1,
@@ -202,7 +210,7 @@ class EC2Driver < Deltacloud::BaseDriver
nil,
opts[:user_data],
'public',
- flavor_id,
+ hwp.name.gsub(/-/, '.'),
nil,
nil,
realm_id )
@@ -303,6 +311,9 @@ class EC2Driver < Deltacloud::BaseDriver
realm_id = ec2_instance[:aws_availability_zone]
(realm_id = nil ) if ( realm_id == '' )
+
+ hwp_name = ec2_instance[:aws_instance_type].gsub( /\./, '-')
+
Instance.new( {
:id=>ec2_instance[:aws_instance_id],
:name => ec2_instance[:aws_image_id],
@@ -313,6 +324,7 @@ class EC2Driver < Deltacloud::BaseDriver
:public_addresses=>( ec2_instance[:dns_name] == '' ? [] : [ec2_instance[:dns_name]] ),
:private_addresses=>( ec2_instance[:private_dns_name] == '' ? [] : [ec2_instance[:private_dns_name]] ),
:flavor_id=>ec2_instance[:aws_instance_type].gsub( /\./, '-'),
+ :instance_profile => InstanceProfile.new(hwp_name),
:actions=>instance_actions_for( ec2_instance[:aws_state].upcase ),
} )
end