The *_instance methods are expected to return an instance
object from the individual drivers.  The ec2 driver was
failing to do this, leading to stacktraces in the server.
Fix this up by fetching the instance after an action.

Signed-off-by: Chris Lalancette <[email protected]>
---
 server/lib/deltacloud/drivers/ec2/ec2_driver.rb |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb 
b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index 69356e2..e1e5bf2 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -171,6 +171,9 @@ class EC2Driver < Deltacloud::BaseDriver
     safely do
       ec2.reboot_instances( :instance_id => id )
     end
+
+    this_instance = ec2.describe_instances( :instance_id => 
id).reservationSet.item.first.instancesSet.item.first
+    convert_instance(this_instance, this_instance.ownerId)
   end
 
   def stop_instance(credentials, id)
@@ -178,6 +181,8 @@ class EC2Driver < Deltacloud::BaseDriver
     safely do
       ec2.terminate_instances( :instance_id => id )
     end
+    this_instance = ec2.describe_instances( :instance_id => 
id).reservationSet.item.first.instancesSet.item.first
+    convert_instance(this_instance, this_instance.ownerId)
   end
 
   def destroy_instance(credentials, id)
@@ -185,6 +190,8 @@ class EC2Driver < Deltacloud::BaseDriver
     safely do
       ec2.terminate_instances( :instance_id => id )
     end
+    this_instance = ec2.describe_instances( :instance_id => 
id).reservationSet.item.first.instancesSet.item.first
+    convert_instance(this_instance, this_instance.ownerId)
   end
 
   #
-- 
1.6.6.1

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to