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 2011/05/10 11:43:52 UTC
[PATCH core 1/3] Attaching EBS snapshot to instance upon creation time
From: Michal Fojtik <mf...@redhat.com>
Signed-off-by: Michal fojtik <mf...@redhat.com>
---
server/lib/deltacloud/base_driver/features.rb | 8 ++++++++
server/lib/deltacloud/drivers/ec2/ec2_driver.rb | 7 +++++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/server/lib/deltacloud/base_driver/features.rb b/server/lib/deltacloud/base_driver/features.rb
index f978640..33ab61d 100644
--- a/server/lib/deltacloud/base_driver/features.rb
+++ b/server/lib/deltacloud/base_driver/features.rb
@@ -232,6 +232,14 @@ module Deltacloud
end
end
+ declare_feature :instances, :attach_ebs_snapshot do
+ description "Number of instances to be launch with at once"
+ operation :create do
+ param :ebs_snapshot_id, :string, :optional
+ param :device_name, :string, :optional
+ end
+ end
+
declare_feature :instances, :sandboxing do
description "Allow lanuching sandbox images"
operation :create do
diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index dcf16fe..8ff2144 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -43,6 +43,7 @@ module Deltacloud
feature :images, :owner_id
feature :buckets, :bucket_location
feature :instances, :register_to_load_balancer
+ feature :instances, :attach_ebs_snapshot
DEFAULT_REGION = 'us-east-1'
@@ -205,6 +206,12 @@ module Deltacloud
:min_count => opts[:instance_count],
:max_count => opts[:instance_count]
) if opts[:instance_count] and opts[:instance_count].length!=0
+ if opts[:ebs_snapshot_id] and opts[:device_name]
+ instance_options.merge!(:block_device_mappings => [{
+ :ebs_snapshot_id => opts[:ebs_snapshot_id],
+ :device_name => opts[:device_name]
+ }])
+ end
safely do
new_instance = convert_instance(ec2.launch_instances(image_id, instance_options).first)
# TODO: Rework this to use client_id for name instead of tag
--
1.7.4.1