You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2010/11/15 13:46:52 UTC

[PATCH core 10/14] Fixed some small bugs in EC2 driver

From: Michal Fojtik <mf...@redhat.com>

---
 server/lib/deltacloud/drivers/ec2/ec2_driver.rb |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index a0fd919..c58c1b4 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -143,7 +143,7 @@ module Deltacloud
 
         def realms(credentials, opts={})
           ec2 = new_client(credentials)
-          zone_id = opts ? opts[:id] : []
+          zone_id = opts ? opts[:id] : nil
           safely do
             return ec2.describe_availability_zones(zone_id).collect do |realm|
               convert_realm(realm)
@@ -200,7 +200,7 @@ module Deltacloud
           ec2 = new_client(credentials)
           opts ||= {}
           safely do
-            ec2.describe_key_pairs(opts[:id] || []).collect do |key|
+            ec2.describe_key_pairs(opts[:id] || nil).collect do |key|
               convert_key(key)
             end
           end
@@ -212,12 +212,21 @@ module Deltacloud
 
         def create_key(credentials, opts={})
           ec2 = new_client(credentials)
-          puts opts.inspect
           safely do
             convert_key(ec2.create_key_pair(opts[:key_name]))
           end
         end
 
+        def destroy_key(credentials, opts={})
+          ec2 = new_client(credentials)
+          original_key = key(credentials, opts)
+          safely do
+            ec2.delete_key_pair(original_key.id)
+            original_key= original_key.state = "DELETED"
+          end
+          original_key
+        end
+
         def buckets(credentials, opts)
           buckets = []
           safely do
@@ -273,7 +282,7 @@ module Deltacloud
 
         def storage_volumes(credentials, opts={})
           ec2 = new_client( credentials )
-          volume_list = (opts and opts[:id]) ? opts[:id] : []
+          volume_list = (opts and opts[:id]) ? opts[:id] : nil
           safely do
             ec2.describe_volumes(volume_list).collect do |volume|
               convert_volume(volume)
@@ -409,7 +418,8 @@ module Deltacloud
             :id => key[:aws_key_name],
             :fingerprint => key[:aws_fingerprint],
             :credential_type => :key,
-            :pem_rsa_key => key[:aws_material]
+            :pem_rsa_key => key[:aws_material],
+            :state => "AVAILABLE"
           )
         end
 
-- 
1.7.3.2