Merge "Added mount fstype based validation of Quobyte mounts"
This commit is contained in:
commit
e1d90c0bb3
@ -944,7 +944,7 @@ class QuobyteDriverTestCase(test.TestCase):
|
|||||||
|
|
||||||
@mock.patch.object(psutil, "disk_partitions")
|
@mock.patch.object(psutil, "disk_partitions")
|
||||||
@mock.patch.object(os, "stat")
|
@mock.patch.object(os, "stat")
|
||||||
def test_validate_volume_all_good(self, stat_mock, part_mock):
|
def test_validate_volume_all_good_prefix_val(self, stat_mock, part_mock):
|
||||||
part_mock.return_value = self.get_mock_partitions()
|
part_mock.return_value = self.get_mock_partitions()
|
||||||
drv = self._driver
|
drv = self._driver
|
||||||
|
|
||||||
@ -961,6 +961,27 @@ class QuobyteDriverTestCase(test.TestCase):
|
|||||||
stat_mock.assert_called_once_with(self.TEST_MNT_POINT)
|
stat_mock.assert_called_once_with(self.TEST_MNT_POINT)
|
||||||
part_mock.assert_called_once_with(all=True)
|
part_mock.assert_called_once_with(all=True)
|
||||||
|
|
||||||
|
@mock.patch.object(psutil, "disk_partitions")
|
||||||
|
@mock.patch.object(os, "stat")
|
||||||
|
def test_validate_volume_all_good_subtype_val(self, stat_mock, part_mock):
|
||||||
|
part_mock.return_value = self.get_mock_partitions()
|
||||||
|
part_mock.return_value[0].device = "not_quobyte"
|
||||||
|
part_mock.return_value[0].fstype = "fuse.quobyte"
|
||||||
|
drv = self._driver
|
||||||
|
|
||||||
|
def statMockCall(*args):
|
||||||
|
if args[0] == self.TEST_MNT_POINT:
|
||||||
|
stat_result = mock.Mock()
|
||||||
|
stat_result.st_size = 0
|
||||||
|
return stat_result
|
||||||
|
return os.stat(args)
|
||||||
|
stat_mock.side_effect = statMockCall
|
||||||
|
|
||||||
|
drv._validate_volume(self.TEST_MNT_POINT)
|
||||||
|
|
||||||
|
stat_mock.assert_called_once_with(self.TEST_MNT_POINT)
|
||||||
|
part_mock.assert_called_once_with(all=True)
|
||||||
|
|
||||||
@mock.patch.object(psutil, "disk_partitions")
|
@mock.patch.object(psutil, "disk_partitions")
|
||||||
@mock.patch.object(os, "stat")
|
@mock.patch.object(os, "stat")
|
||||||
def test_validate_volume_mount_not_working(self, stat_mock, part_mock):
|
def test_validate_volume_mount_not_working(self, stat_mock, part_mock):
|
||||||
|
@ -32,7 +32,7 @@ from cinder import utils
|
|||||||
from cinder.volume import configuration
|
from cinder.volume import configuration
|
||||||
from cinder.volume.drivers import remotefs as remotefs_drv
|
from cinder.volume.drivers import remotefs as remotefs_drv
|
||||||
|
|
||||||
VERSION = '1.1.6'
|
VERSION = '1.1.7'
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -86,6 +86,7 @@ class QuobyteDriver(remotefs_drv.RemoteFSSnapDriverDistributed):
|
|||||||
1.1.4 - Fixes capability to configure redundancy in quobyte_volume_url
|
1.1.4 - Fixes capability to configure redundancy in quobyte_volume_url
|
||||||
1.1.5 - Enables extension of volumes with snapshots
|
1.1.5 - Enables extension of volumes with snapshots
|
||||||
1.1.6 - Optimizes volume creation
|
1.1.6 - Optimizes volume creation
|
||||||
|
1.1.7 - Support fuse subtype based Quobyte mount validation
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -504,7 +505,8 @@ class QuobyteDriver(remotefs_drv.RemoteFSSnapDriverDistributed):
|
|||||||
partitions = psutil.disk_partitions(all=True)
|
partitions = psutil.disk_partitions(all=True)
|
||||||
for p in partitions:
|
for p in partitions:
|
||||||
if mount_path == p.mountpoint:
|
if mount_path == p.mountpoint:
|
||||||
if p.device.startswith("quobyte@"):
|
if (p.device.startswith("quobyte@") or
|
||||||
|
(p.fstype == "fuse.quobyte")):
|
||||||
try:
|
try:
|
||||||
statresult = os.stat(mount_path)
|
statresult = os.stat(mount_path)
|
||||||
if statresult.st_size == 0:
|
if statresult.st_size == 0:
|
||||||
|
5
releasenotes/notes/bug-1730933-1bb0272e3c51eed3.yaml
Normal file
5
releasenotes/notes/bug-1730933-1bb0272e3c51eed3.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The Quobyte Cinder driver now supports identifying Quobyte mounts
|
||||||
|
via the mounts fstype field.
|
Loading…
Reference in New Issue
Block a user