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 2012/01/12 14:27:46 UTC
[PATCH core] EC2: A full list of created instances should be now returned when use specified the 'instance_count' parameter. (DTACLOUD-79)
From: Michal Fojtik <mf...@redhat.com>
Signed-off-by: Michal fojtik <mf...@redhat.com>
---
server/lib/deltacloud/drivers/ec2/ec2_driver.rb | 10 ++++++-
server/lib/deltacloud/server.rb | 28 ++++++++++++++++++----
2 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index f899ea1..5c1ddcc 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -231,8 +231,14 @@ module Deltacloud
}]
end
safely do
- new_instance = convert_instance(ec2.launch_instances(image_id, instance_options).first)
- new_instance
+ new_instances = ec2.launch_instances(image_id, instance_options).collect do |i|
+ convert_instance(i)
+ end
+ if new_instances.size == 1
+ new_instances.first
+ else
+ new_instances
+ end
end
end
diff --git a/server/lib/deltacloud/server.rb b/server/lib/deltacloud/server.rb
index db742d6..649871f 100644
--- a/server/lib/deltacloud/server.rb
+++ b/server/lib/deltacloud/server.rb
@@ -476,14 +476,32 @@ END
param :hwp_id, :string, :optional
control do
@instance = driver.create_instance(credentials, params[:image_id], params)
+ if @instance.kind_of? Array
+ @instances = @instance
+ action_handler = "index"
+ else
+ response['Location'] = instance_url(@instance.id)
+ action_handler = "show"
+ end
status 201 # Created
- response['Location'] = instance_url(@instance.id)
respond_to do |format|
- format.xml { haml :"instances/show" }
- format.json { convert_to_json(:instance, @instance) }
+ format.xml { haml :"instances/action_handler" }
+ format.json do
+ if @instances
+ convert_to_json(:instances, @instances)
+ else
+ convert_to_json(:instance, @instance)
+ end
+ end
format.html do
- redirect instance_url(@instance.id) if @instance and @instance.id
- redirect instances_url
+ if @instances
+ haml :"instances/index"
+ elsif @instance and @instance.id
+ response['Location'] = instance_url(@instance.id)
+ redirect instance_url(@instance.id)
+ else
+ redirect instances_url
+ end
end
end
end
--
1.7.4.4