@@ -203,7 +203,7 @@ def test_quobyte_umount_volume_fails(self,
203
203
204
204
@mock .patch .object (psutil , "disk_partitions" )
205
205
@mock .patch .object (os , "stat" )
206
- def test_validate_volume_all_good (self , stat_mock , part_mock ):
206
+ def test_validate_volume_all_good_prefix_val (self , stat_mock , part_mock ):
207
207
part_mock .return_value = self .get_mock_partitions ()
208
208
drv = quobyte
209
209
@@ -220,6 +220,27 @@ def statMockCall(*args):
220
220
stat_mock .assert_called_once_with (self .TEST_MNT_POINT )
221
221
part_mock .assert_called_once_with (all = True )
222
222
223
+ @mock .patch .object (psutil , "disk_partitions" )
224
+ @mock .patch .object (os , "stat" )
225
+ def test_validate_volume_all_good_fs_type (self , stat_mock , part_mock ):
226
+ part_mock .return_value = self .get_mock_partitions ()
227
+ part_mock .return_value [0 ].device = "not_quobyte"
228
+ part_mock .return_value [0 ].fstype = "fuse.quobyte"
229
+ drv = quobyte
230
+
231
+ def statMockCall (* args ):
232
+ if args [0 ] == self .TEST_MNT_POINT :
233
+ stat_result = mock .Mock ()
234
+ stat_result .st_size = 0
235
+ return stat_result
236
+ return os .stat (args )
237
+ stat_mock .side_effect = statMockCall
238
+
239
+ drv .validate_volume (self .TEST_MNT_POINT )
240
+
241
+ stat_mock .assert_called_once_with (self .TEST_MNT_POINT )
242
+ part_mock .assert_called_once_with (all = True )
243
+
223
244
@mock .patch .object (psutil , "disk_partitions" )
224
245
@mock .patch .object (os , "stat" )
225
246
def test_validate_volume_mount_not_working (self , stat_mock , part_mock ):
@@ -293,13 +314,15 @@ class LibvirtQuobyteVolumeDriverTestCase(
293
314
test_volume .LibvirtVolumeBaseTestCase ):
294
315
"""Tests the LibvirtQuobyteVolumeDriver class."""
295
316
317
+ @mock .patch .object (quobyte , 'umount_volume' )
296
318
@mock .patch .object (quobyte , 'validate_volume' )
297
319
@mock .patch .object (quobyte , 'mount_volume' )
298
320
@mock .patch .object (libvirt_utils , 'is_mounted' , return_value = False )
299
321
def test_libvirt_quobyte_driver_mount (self ,
300
322
mock_is_mounted ,
301
323
mock_mount_volume ,
302
- mock_validate_volume
324
+ mock_validate_volume ,
325
+ mock_umount_volume
303
326
):
304
327
mnt_base = '/mnt'
305
328
self .flags (quobyte_mount_point_base = mnt_base , group = 'libvirt' )
@@ -313,6 +336,9 @@ def test_libvirt_quobyte_driver_mount(self,
313
336
314
337
connection_info = {'data' : {'export' : export_string ,
315
338
'name' : self .name }}
339
+ mock_validate_volume .side_effect = [nova_exception .StaleVolumeMount (
340
+ "This shall fail." ), True , True ]
341
+
316
342
libvirt_driver .connect_volume (connection_info , mock .sentinel .instance )
317
343
318
344
conf = libvirt_driver .get_config (connection_info , self .disk_info )
@@ -324,12 +350,12 @@ def test_libvirt_quobyte_driver_mount(self,
324
350
export_mnt_base ,
325
351
mock .ANY )
326
352
mock_validate_volume .assert_called_with (export_mnt_base )
353
+ mock_umount_volume .assert_called_once_with (
354
+ libvirt_driver ._get_mount_path (connection_info ))
327
355
328
- @mock .patch .object (quobyte , 'validate_volume' )
356
+ @mock .patch .object (quobyte , 'validate_volume' , return_value = True )
329
357
@mock .patch .object (quobyte , 'umount_volume' )
330
- @mock .patch .object (libvirt_utils , 'is_mounted' , return_value = True )
331
- def test_libvirt_quobyte_driver_umount (self , mock_is_mounted ,
332
- mock_umount_volume ,
358
+ def test_libvirt_quobyte_driver_umount (self , mock_umount_volume ,
333
359
mock_validate_volume ):
334
360
mnt_base = '/mnt'
335
361
self .flags (quobyte_mount_point_base = mnt_base , group = 'libvirt' )
@@ -352,7 +378,9 @@ def test_libvirt_quobyte_driver_umount(self, mock_is_mounted,
352
378
libvirt_driver .disconnect_volume (connection_info ,
353
379
mock .sentinel .instance )
354
380
355
- mock_validate_volume .assert_called_once_with (export_mnt_base )
381
+ mock_validate_volume .assert_has_calls ([mock .call (export_mnt_base ),
382
+ mock .call (export_mnt_base ),
383
+ mock .call (export_mnt_base )])
356
384
mock_umount_volume .assert_called_once_with (export_mnt_base )
357
385
358
386
@mock .patch .object (quobyte , 'validate_volume' )
@@ -385,15 +413,14 @@ def test_libvirt_quobyte_driver_already_mounted(self,
385
413
mock .sentinel .instance )
386
414
387
415
mock_umount_volume .assert_called_once_with (export_mnt_base )
388
- mock_validate_volume .assert_called_once_with (export_mnt_base )
416
+ mock_validate_volume .assert_has_calls ([mock .call (export_mnt_base ),
417
+ mock .call (export_mnt_base )])
389
418
419
+ @mock .patch .object (quobyte , 'umount_volume' )
390
420
@mock .patch .object (quobyte , 'validate_volume' )
391
421
@mock .patch .object (quobyte , 'mount_volume' )
392
- @mock .patch .object (libvirt_utils , 'is_mounted' , return_value = False )
393
- def test_libvirt_quobyte_driver_qcow2 (self , mock_is_mounted ,
394
- mock_mount_volume ,
395
- mock_validate_volume
396
- ):
422
+ def test_libvirt_quobyte_driver_qcow2 (self , mock_mount_volume ,
423
+ mock_validate_volume , mock_umount ):
397
424
mnt_base = '/mnt'
398
425
self .flags (quobyte_mount_point_base = mnt_base , group = 'libvirt' )
399
426
libvirt_driver = quobyte .LibvirtQuobyteVolumeDriver (self .fake_host )
@@ -408,6 +435,8 @@ def test_libvirt_quobyte_driver_qcow2(self, mock_is_mounted,
408
435
409
436
export_mnt_base = os .path .join (mnt_base ,
410
437
utils .get_hash_str (quobyte_volume ))
438
+ mock_validate_volume .side_effect = [nova_exception .StaleVolumeMount (
439
+ "This shall fail." ), True , True ]
411
440
412
441
libvirt_driver .connect_volume (connection_info , mock .sentinel .instance )
413
442
conf = libvirt_driver .get_config (connection_info , self .disk_info )
@@ -423,6 +452,8 @@ def test_libvirt_quobyte_driver_qcow2(self, mock_is_mounted,
423
452
424
453
libvirt_driver .disconnect_volume (connection_info ,
425
454
mock .sentinel .instance )
455
+ mock_umount .assert_has_calls ([mock .call (export_mnt_base ),
456
+ mock .call (export_mnt_base )])
426
457
427
458
@mock .patch .object (libvirt_utils , 'is_mounted' , return_value = True )
428
459
def test_libvirt_quobyte_driver_mount_non_quobyte_volume (self ,
0 commit comments