]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Make Volume snapshot a task
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 14:09:00 +0000 (16:09 +0200)
Change-Id: I53fbd6e2ba9b17fa0ccd38d5e077587df0bbfef8

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

index 0585faf7f94164a26464794c6b0e92edcbccadfc..663ce56f8596fd9165ca180895afbf28418cabd5 100644 (file)
@@ -13,7 +13,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import eventlet
 import json
 
 from heat.openstack.common import log as logging
@@ -22,6 +21,7 @@ from heat.openstack.common.importutils import try_import
 from heat.common import exception
 from heat.engine import clients
 from heat.engine import resource
+from heat.engine import scheduler
 
 volume_backups = try_import('cinderclient.v1.volume_backups')
 
@@ -86,7 +86,7 @@ class Volume(resource.Resource):
     def _backup(self):
         backup = self.cinder().backups.create(self.resource_id)
         while backup.status == 'creating':
-            eventlet.sleep(1)
+            yield
             backup.get()
         if backup.status != 'available':
             raise exception.Error(backup.status)
@@ -97,7 +97,7 @@ class Volume(resource.Resource):
                 vol = self.cinder().volumes.get(self.resource_id)
 
                 if backup:
-                    self._backup()
+                    scheduler.TaskRunner(self._backup)()
                     vol.get()
 
                 if vol.status == 'in-use':
index 20f589ae27b72ea1e03b52d6fcd0f3c1f53f4e63..4af4f7ebb5280e24672575e124d5d2b6d196d916 100644 (file)
@@ -83,6 +83,7 @@ class VolumeTest(HeatTestCase):
         self.m.StubOutWithMock(self.fc.volumes, 'create_server_volume')
         self.m.StubOutWithMock(self.fc.volumes, 'delete_server_volume')
         self.m.StubOutWithMock(eventlet, 'sleep')
+        self.m.StubOutWithMock(scheduler.TaskRunner, '_sleep')
         setup_dummy_db()
 
     def create_volume(self, t, stack, resource_name):
@@ -272,7 +273,6 @@ class VolumeTest(HeatTestCase):
         # snapshot script
         self.m.StubOutWithMock(self.cinder_fc.backups, 'create')
         self.cinder_fc.backups.create('vol-123').AndReturn(fb)
-        eventlet.sleep(1).AndReturn(None)
         self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
         self.cinder_fc.volumes.delete('vol-123').AndReturn(None)
         self.m.ReplayAll()
@@ -305,7 +305,6 @@ class VolumeTest(HeatTestCase):
         self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
         self.m.StubOutWithMock(self.cinder_fc.backups, 'create')
         self.cinder_fc.backups.create('vol-123').AndReturn(fb)
-        eventlet.sleep(1).AndReturn(None)
         self.m.ReplayAll()
 
         t = template_format.parse(volume_template)