]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Block on instance delete until delete operation completes
authorSteven Dake <sdake@redhat.com>
Thu, 12 Jul 2012 15:38:51 +0000 (08:38 -0700)
committerSteven Dake <sdake@redhat.com>
Thu, 12 Jul 2012 15:47:11 +0000 (08:47 -0700)
Fixes issue #160

During deletion of a stack, following would occur:
delete stack
delete instance
delete eip or security group

When the last operation occurred, the instance is still present in OpenStack
making a deletion of EIP or security groups not work properly.  Serialize
the operations in resources.

Change-Id: I6e1613f5a6f5db485dd8a5f381d7a96afb58188b
Signed-off-by: Steven Dake <sdake@redhat.com>
heat/engine/instance.py

index c48aa6433ba36e045962e21e8ea31fb88c976cbb..a1c794de5fd7c521451fdc5862cf7cb48f59c960 100644 (file)
@@ -280,10 +280,19 @@ class Instance(resources.Resource):
                 'Provided KeyName is not registered with nova'}
 
     def handle_delete(self):
+        '''
+        Delete an instance, blocking until it is disposed by OpenStack
+        '''
         try:
             server = self.nova().servers.get(self.instance_id)
         except NotFound:
             pass
         else:
             server.delete()
+            while server.status == 'ACTIVE':
+                try:
+                    server.get()
+                except NotFound:
+                    break
+                eventlet.sleep(0.2)
         self.instance_id = None