]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Move Volume polling to check_create_complete()
authorZane Bitter <zbitter@redhat.com>
Wed, 15 May 2013 20:26:09 +0000 (22:26 +0200)
committerZane Bitter <zbitter@redhat.com>
Thu, 16 May 2013 12:42:49 +0000 (14:42 +0200)
Rather than poll in a loop inside handle_create(), use
check_create_complete() to check the status of the Volume.

Fixes bug #1178578

Change-Id: Icea7154c6e3763c977bd41671f51736c4a366141

heat/engine/resources/volume.py
heat/tests/test_volume.py

index dc9d89f463ec00515a274fe6f079bf303576b1d9..0585faf7f94164a26464794c6b0e92edcbccadfc 100644 (file)
@@ -68,10 +68,16 @@ class Volume(resource.Resource):
                 **self._create_arguments())
         self.resource_id_set(vol.id)
 
-        while vol.status == 'creating':
-            eventlet.sleep(1)
-            vol.get()
-        if vol.status != 'available':
+        return vol
+
+    def check_create_complete(self, vol):
+        vol.get()
+
+        if vol.status == 'available':
+            return True
+        elif vol.status == 'creating':
+            return False
+        else:
             raise exception.Error(vol.status)
 
     def handle_update(self, json_snippet):
index df71f976895a4532bea4b69126928156e8df9bca..20f589ae27b72ea1e03b52d6fcd0f3c1f53f4e63 100644 (file)
@@ -117,7 +117,6 @@ class VolumeTest(HeatTestCase):
 
         # delete script
         self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
-        eventlet.sleep(1).AndReturn(None)
 
         self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
         self.cinder_fc.volumes.delete('vol-123').AndReturn(None)
@@ -156,8 +155,6 @@ class VolumeTest(HeatTestCase):
             display_description='%s.DataVolume' % stack_name,
             display_name='%s.DataVolume' % stack_name).AndReturn(fv)
 
-        eventlet.sleep(1).AndReturn(None)
-
         self.m.ReplayAll()
 
         t = template_format.parse(volume_template)
@@ -271,7 +268,6 @@ class VolumeTest(HeatTestCase):
             size=u'1', availability_zone='nova',
             display_description='%s.DataVolume' % stack_name,
             display_name='%s.DataVolume' % stack_name).AndReturn(fv)
-        eventlet.sleep(1).AndReturn(None)
 
         # snapshot script
         self.m.StubOutWithMock(self.cinder_fc.backups, 'create')
@@ -304,7 +300,6 @@ class VolumeTest(HeatTestCase):
             size=u'1', availability_zone='nova',
             display_description='%s.DataVolume' % stack_name,
             display_name='%s.DataVolume' % stack_name).AndReturn(fv)
-        eventlet.sleep(1).AndReturn(None)
 
         # snapshot script
         self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
@@ -335,7 +330,6 @@ class VolumeTest(HeatTestCase):
             size=u'1', availability_zone='nova',
             display_description='%s.DataVolume' % stack_name,
             display_name='%s.DataVolume' % stack_name).AndReturn(fv)
-        eventlet.sleep(1).AndReturn(None)
 
         self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
         self.cinder_fc.volumes.delete('vol-123').AndReturn(None)
@@ -373,7 +367,6 @@ class VolumeTest(HeatTestCase):
         fv.update(
             display_description='%s.DataVolume' % stack_name,
             display_name='%s.DataVolume' % stack_name)
-        eventlet.sleep(1).AndReturn(None)
 
         self.m.ReplayAll()
 
@@ -402,8 +395,6 @@ class VolumeTest(HeatTestCase):
             source_volid='vol-012',
             volume_type='lvm').AndReturn(fv)
 
-        eventlet.sleep(1).AndReturn(None)
-
         self.m.ReplayAll()
 
         t = template_format.parse(volume_template)
@@ -444,8 +435,6 @@ class VolumeTest(HeatTestCase):
             display_description=None,
             display_name='%s.DataVolume' % stack_name).AndReturn(fv)
 
-        eventlet.sleep(1).AndReturn(None)
-
         self.m.ReplayAll()
 
         t = template_format.parse(volume_template)