Merge "VStorage: make logging path configurable"

This commit is contained in:
Jenkins 2017-09-07 17:22:14 +00:00 committed by Gerrit Code Review
commit 691b54f6b4
3 changed files with 38 additions and 14 deletions

View File

@ -56,10 +56,6 @@ class VZStorageTestCase(test.TestCase):
def setUp(self):
super(VZStorageTestCase, self).setUp()
self._remotefsclient = mock.patch.object(
remotefs, 'VZStorageRemoteFSClient').start()
get_mount_point = mock.Mock(return_value=self._FAKE_MNT_POINT)
self._remotefsclient.get_mount_point = get_mount_point
cfg = copy.copy(self._FAKE_VZ_CONFIG)
self._vz_driver = vzstorage.VZStorageDriver(configuration=cfg)
self._vz_driver._local_volume_dir = mock.Mock(
@ -168,12 +164,26 @@ class VZStorageTestCase(test.TestCase):
self.assertRaises(exception.VzStorageException,
self._vz_driver._ensure_share_mounted, ':')
def test_ensure_share_mounted(self):
@mock.patch.object(remotefs.RemoteFsClient, 'mount')
def test_ensure_share_mounted(self, mock_mount):
drv = self._vz_driver
share = self._FAKE_SHARE
drv.shares = {'1': '["1", "2", "3"]', share: '["some", "options"]'}
share = 'test'
expected_calls = [
mock.call(share, ['-u', 'cinder', '-g', 'root', '-l',
'/var/log/vstorage/%s/cinder.log.gz' % share]),
mock.call(share, ['-l', '/var/log/dummy.log'])
]
share_flags = '["-u", "cinder", "-g", "root"]'
drv.shares[share] = share_flags
drv._ensure_share_mounted(share)
share_flags = '["-l", "/var/log/dummy.log"]'
drv.shares[share] = share_flags
drv._ensure_share_mounted(share)
mock_mount.assert_has_calls(expected_calls)
def test_find_share(self):
drv = self._vz_driver
drv._mounted_shares = [self._FAKE_SHARE]

View File

@ -300,13 +300,19 @@ class VZStorageDriver(remotefs_drv.RemoteFSSnapDriver):
raise exception.VzStorageException(msg)
cluster_name = m.group(2)
# set up logging to non-default path, so that it will
# be possible to mount the same cluster to another mount
# point by hand with default options.
mnt_flags = ['-l', '/var/log/pstorage/%s-cinder.log.gz' % cluster_name]
if self.shares.get(share) is not None:
extra_flags = json.loads(self.shares[share])
mnt_flags.extend(extra_flags)
if share in self.shares:
mnt_flags = json.loads(self.shares[share])
else:
mnt_flags = []
if '-l' not in mnt_flags:
# If logging path is not specified in shares config
# set up logging to non-default path, so that it will
# be possible to mount the same cluster to another mount
# point by hand with default options.
mnt_flags.extend([
'-l', '/var/log/vstorage/%s/cinder.log.gz' % cluster_name])
self._remotefsclient.mount(share, mnt_flags)
def _find_share(self, volume):

View File

@ -0,0 +1,8 @@
---
features:
- |
Logging path can now be configured for vzstorage driver in
shares config file (specified by vzstorage_shares_config option).
To set custom logging path add `'-l', '<path_to_log_file>'` to
mount options array. Otherwise default logging path
`/var/log/vstorage/<cluster_name>/cinder.log.gz` will be used.