incubator-deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Toby Crawley <>
Subject Re: EC2 driver rewrite (rev 3)
Date Mon, 29 Nov 2010 19:10:55 GMT
On 11/29/2010 08:16 AM, wrote:
> Hi guys,
> This is third edition of new EC2 driver. I removed / merged all
> patches which was not related to new EC2 driver.
> To get this patchset running, you need latest AWS gem which is
> now pending 2 pull commits (Tobi 1.8.6 compatibility patch and my
> S3 location patch). For now, you can install AWS from this location:
> This version has all necessary patches/fixed applied.
>   --- Michal


I'm going to NACK this patch as it is currently, for the following reasons:

* the attaching a public ip feature did not work for me at instance launch time - it appears
that AWS requires an instance to be in the 
RUNNING state before it will attach an ip address (though I did not see references to this
in the AWS docs). Here is Dc log output for the 

13:29:07,427 INFO  [STDOUT] ##### Aws::Ec2 returned an error: 400 Bad Request
13:29:07,427 INFO  [STDOUT] <?xml version="1.0" encoding="UTF-8"?>
13:29:07,427 INFO  [STDOUT] <Response><Errors><Error><Code>InvalidInstanceId</Code><Message>The
instance 'i-77e3ac1a' is not in the 
'running' state</Message></Error></Errors><RequestID>507d46ee-6968-4774-8c65-71932b64d971</RequestID></Response>
13:29:07,427 INFO  [STDOUT] ##### Aws::Ec2 request:<redacted>&Action=AssociateAddress&InstanceId=i-77e3ac1a&PublicIp=

13:29:07,431 ERROR [STDERR] Deltacloud::BackendError - InvalidInstanceId: The instance 'i-77e3ac1a'
is not in the 'running' state

* the new aws gem returns the in use state for a storage_volume as 'IN_USE', whereas amazon-ec2
returned 'IN-USE'. The storage_volume index 
still makes reference to IN-USE (server/views/storage_volumes/index.html.haml#26

* I had to make the following change to have the mounted instance information be reported
correctly on a storage_volume:

diff --git a/client/lib/deltacloud.rb b/client/lib/deltacloud.rb
index c632594..30e0a1d 100644
--- a/client/lib/deltacloud.rb
+++ b/client/lib/deltacloud.rb
@@ -167,7 +167,7 @@ module DeltaCloud

          if == 'mount'
-          obj.add_link!("instance", (attribute/"./instance/@id").first)
+          obj.add_link!("instance", (attribute/"./instance/@id").first.value)
            obj.add_text!("device", (attribute/"./device/@name").first.value)

* I had to make the following two changes to the instance code to launch in the correct realm,
and to properly return the public hostname:

diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/
index 59206d7..af7a1e6 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -170,7 +170,7 @@ module Deltacloud
            instance_options = {}
            instance_options.merge!(:user_data => opts[:user_data]) if opts[:user_data]
            instance_options.merge!(:key_name => opts[:key_name]) if opts[:key_name]
-          instance_options.merge!(:availability_zone => opts[:availability_zone]) if opts[:avail
+          instance_options.merge!(:availability_zone => opts[:realm_id]) if opts[:realm_id]
            instance_options.merge!(:instance_type => opts[:hwp_id]) if opts[:hwp_id]
            instance_options.merge!(:group_ids => opts[:security_group]) if opts[:security_group]
            safely do
@@ -451,7 +451,7 @@ module Deltacloud
              :instance_profile =>[:aws_instance_type]),
              :realm_id => instance[:aws_availability_zone],
              :private_addresses => instance[:private_dns_name],
-            :public_addresses => instance[:public_addresses]
+            :public_addresses => instance[:dns_name]

Both of the above patches are the same changes I sent last week, but these patches should
apply cleanly to your current tree on top of the 
patch set.

I only tested instance and storage volume creation & management. I didn't test any of
the blob storage features.

View raw message