summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/compute/test_compute.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index 395a075c8..7e85ad0a7 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -248,6 +248,7 @@ class ComputeVolumeTestCase(BaseTestCase):
def setUp(self):
super(ComputeVolumeTestCase, self).setUp()
self.volume_id = 'fake'
+ self.fetched_attempts = 0
self.instance = {
'id': 'fake',
'uuid': 'fake',
@@ -283,6 +284,40 @@ class ComputeVolumeTestCase(BaseTestCase):
'/dev/vdb', self.instance)
self.assertEqual(self.cinfo.get('serial'), self.volume_id)
+ def test_await_block_device_created_to_slow(self):
+
+ def never_get(context, vol_id):
+ return {
+ 'status': 'creating',
+ 'id': 'blah',
+ }
+
+ self.stubs.Set(self.compute.volume_api, 'get', never_get)
+ self.assertRaises(exception.VolumeNotCreated,
+ self.compute._await_block_device_map_created,
+ self.context, '1', max_tries=2, wait_between=0.1)
+
+ def test_await_block_device_created_slow(self):
+ c = self.compute
+
+ def slow_get(context, vol_id):
+ while self.fetched_attempts < 2:
+ self.fetched_attempts += 1
+ return {
+ 'status': 'creating',
+ 'id': 'blah',
+ }
+ return {
+ 'status': 'available',
+ 'id': 'blah',
+ }
+
+ self.stubs.Set(c.volume_api, 'get', slow_get)
+ attempts = c._await_block_device_map_created(self.context, '1',
+ max_tries=4,
+ wait_between=0.1)
+ self.assertEqual(attempts, 3)
+
def test_boot_volume_serial(self):
block_device_mapping = [{
'id': 1,