You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2010/07/28 15:48:27 UTC
svn commit: r980053 -
/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
Author: mfojtik
Date: Wed Jul 28 13:48:27 2010
New Revision: 980053
URL: http://svn.apache.org/viewvc?rev=980053&view=rev
Log:
Make sure the ec2 *_instance methods return an instance.
Signed-off-by: Chris Lalancette <cl...@redhat.com>
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=980053&r1=980052&r2=980053&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 Wed Jul 28 13:48:27 2010
@@ -182,28 +182,46 @@ class EC2Driver < Deltacloud::BaseDriver
:disable_api_termination => false,
:instance_initiated_shutdown_behavior => 'terminate'
)
- convert_instance( ec2_instances.instancesSet.item.first, 'pending' )
+ convert_instance( ec2_instances.instancesSet.item.first, credentials.user )
+ end
+
+ def generate_instance(ec2, id, backup)
+ begin
+ this_instance = ec2.describe_instances( :instance_id => id ).reservationSet.item.first.instancesSet.item.first
+ convert_instance(this_instance, this_instance.ownerId)
+ rescue Exception => e
+ puts "WARNING: ignored error during instance refresh: #{e.message}"
+ # at this point, the action has succeeded but our follow-up
+ # "describe_instances" failed for some reason. Create a simple Instance
+ # object with only the ID and new state in place
+ state = backup.instancesSet.item.first.currentState.name
+ Instance.new( {
+ :id => id,
+ :state => state,
+ :actions => instance_actions_for( state ),
+ } )
+ end
end
def reboot_instance(credentials, id)
ec2 = new_client(credentials)
- safely do
- ec2.reboot_instances( :instance_id => id )
- end
+ backup = ec2.reboot_instances( :instance_id => id )
+
+ generate_instance(ec2, id, backup)
end
def stop_instance(credentials, id)
ec2 = new_client(credentials)
- safely do
- ec2.terminate_instances( :instance_id => id )
- end
+ backup = ec2.terminate_instances( :instance_id => id )
+
+ generate_instance(ec2, id, backup)
end
def destroy_instance(credentials, id)
ec2 = new_client(credentials)
- safely do
- ec2.terminate_instances( :instance_id => id )
- end
+ backup = ec2.terminate_instances( :instance_id => id )
+
+ generate_instance(ec2, id, backup)
end
#