Always use the current volume URL in the Quobyte driver
Ensure all mounts use the currently configured quobyte_volume_url setting. Closes-Bug: #1828993 Change-Id: I109ab9b835be7bb9dbebc2d8973bad38723a93bd
This commit is contained in:
parent
c29285e7dc
commit
674b86a5da
@ -555,7 +555,7 @@ class QuobyteDriverTestCase(test.TestCase):
|
|||||||
mock_get_mount_point.assert_called_once_with(
|
mock_get_mount_point.assert_called_once_with(
|
||||||
self.TEST_QUOBYTE_VOLUME)
|
self.TEST_QUOBYTE_VOLUME)
|
||||||
mock_mount.assert_called_once_with(
|
mock_mount.assert_called_once_with(
|
||||||
self.TEST_QUOBYTE_VOLUME,
|
self.TEST_QUOBYTE_VOLUME_WITHOUT_PROTOCOL,
|
||||||
mock_get_mount_point.return_value,
|
mock_get_mount_point.return_value,
|
||||||
ensure=True)
|
ensure=True)
|
||||||
|
|
||||||
|
@ -35,7 +35,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.11'
|
VERSION = '1.1.12'
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -114,6 +114,7 @@ class QuobyteDriver(remotefs_drv.RemoteFSSnapDriverDistributed):
|
|||||||
1.1.9 - Support for Qemu >= 2.10.0
|
1.1.9 - Support for Qemu >= 2.10.0
|
||||||
1.1.10 - Adds overlay based volumes for snapshot merge caching
|
1.1.10 - Adds overlay based volumes for snapshot merge caching
|
||||||
1.1.11 - NAS secure ownership & permissions are now False by default
|
1.1.11 - NAS secure ownership & permissions are now False by default
|
||||||
|
1.1.12 - Ensure the currently configured volume url is always used
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -244,6 +245,13 @@ class QuobyteDriver(remotefs_drv.RemoteFSSnapDriverDistributed):
|
|||||||
{"cvol": os.path.join(cache_path, cache_file_name)})
|
{"cvol": os.path.join(cache_path, cache_file_name)})
|
||||||
fileutils.delete_if_exists(os.path.join(cache_path, cache_file_name))
|
fileutils.delete_if_exists(os.path.join(cache_path, cache_file_name))
|
||||||
|
|
||||||
|
def _strip_qb_protocol(self, url):
|
||||||
|
# Strip quobyte:// from the URL
|
||||||
|
protocol = self.driver_volume_type + "://"
|
||||||
|
if url.startswith(protocol):
|
||||||
|
return url[len(protocol):]
|
||||||
|
return url
|
||||||
|
|
||||||
def do_setup(self, context):
|
def do_setup(self, context):
|
||||||
"""Any initialization the volume driver does while starting."""
|
"""Any initialization the volume driver does while starting."""
|
||||||
super(QuobyteDriver, self).do_setup(context)
|
super(QuobyteDriver, self).do_setup(context)
|
||||||
@ -572,12 +580,7 @@ class QuobyteDriver(remotefs_drv.RemoteFSSnapDriverDistributed):
|
|||||||
"""
|
"""
|
||||||
self.shares = {}
|
self.shares = {}
|
||||||
|
|
||||||
url = self.configuration.quobyte_volume_url
|
url = self._strip_qb_protocol(self.configuration.quobyte_volume_url)
|
||||||
|
|
||||||
# Strip quobyte:// from the URL
|
|
||||||
protocol = self.driver_volume_type + "://"
|
|
||||||
if url.startswith(protocol):
|
|
||||||
url = url[len(protocol):]
|
|
||||||
|
|
||||||
self.shares[url] = None # None = No extra mount options.
|
self.shares[url] = None # None = No extra mount options.
|
||||||
|
|
||||||
@ -589,7 +592,10 @@ class QuobyteDriver(remotefs_drv.RemoteFSSnapDriverDistributed):
|
|||||||
:param quobyte_volume: string
|
:param quobyte_volume: string
|
||||||
"""
|
"""
|
||||||
mount_path = self._get_mount_point_for_share(quobyte_volume)
|
mount_path = self._get_mount_point_for_share(quobyte_volume)
|
||||||
self._mount_quobyte(quobyte_volume, mount_path, ensure=True)
|
# NOTE(kaisers): Always use the currently configured volume url
|
||||||
|
self._mount_quobyte(
|
||||||
|
self._strip_qb_protocol(self.configuration.quobyte_volume_url),
|
||||||
|
mount_path, ensure=True)
|
||||||
|
|
||||||
@utils.synchronized('quobyte_ensure', external=False)
|
@utils.synchronized('quobyte_ensure', external=False)
|
||||||
def _ensure_shares_mounted(self):
|
def _ensure_shares_mounted(self):
|
||||||
|
5
releasenotes/notes/bug_1828993-8e78d7bbee16ca08.yaml
Normal file
5
releasenotes/notes/bug_1828993-8e78d7bbee16ca08.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes a bug that could cause mount failures with the Quobyte driver if
|
||||||
|
the quobyte_volume_url setting was changed in a running system.
|
Loading…
x
Reference in New Issue
Block a user