glusterfs: manage nfs.rpc-auth-allow not being set

GlusterNFSVolHelper._get_vol_exports should return an
empty list if nfs.rpc-auth-allow is not set on the
backing volume.

Change-Id: I481bcef66efb7f49da7ea9dab27300825388d6d8
Closes-Bug: #1498835
(cherry picked from commit 42eb36b745)
This commit is contained in:
Csaba Henk 2015-09-23 15:56:22 +02:00
parent 552a80a5bf
commit 722a22eac2
2 changed files with 15 additions and 8 deletions

View File

@ -263,7 +263,7 @@ class GlusterNFSVolHelper(GlusterNFSHelper):
def _get_vol_exports(self):
export_vol = self.gluster_manager.get_gluster_vol_option(
NFS_RPC_AUTH_ALLOW)
return export_vol.split(',')
return export_vol.split(',') if export_vol else []
def _manage_access(self, access_type, access_to, cbk):
"""Manage share access with cbk.

View File

@ -194,6 +194,7 @@ class GlusterfsShareDriverTestCase(test.TestCase):
self.assertIsNone(ret)
@ddt.ddt
class GlusterNFSHelperTestCase(test.TestCase):
"""Tests GlusterNFSHelper."""
@ -211,16 +212,19 @@ class GlusterNFSHelperTestCase(test.TestCase):
self.assertEqual(fake_gluster_manager_attrs['export'], ret)
def test_get_export_dir_dict(self):
output_str = '/foo(10.0.0.1|10.0.0.2),/bar(10.0.0.1)'
@ddt.data({'output_str': '/foo(10.0.0.1|10.0.0.2),/bar(10.0.0.1)',
'expected': {'foo': ['10.0.0.1', '10.0.0.2'],
'bar': ['10.0.0.1']}},
{'output_str': None, 'expected': {}})
@ddt.unpack
def test_get_export_dir_dict(self, output_str, expected):
self.mock_object(self._helper.gluster_manager,
'get_gluster_vol_option',
mock.Mock(return_value=output_str))
ret = self._helper._get_export_dir_dict()
self.assertEqual(
{'foo': ['10.0.0.1', '10.0.0.2'], 'bar': ['10.0.0.1']}, ret)
self.assertEqual(expected, ret)
(self._helper.gluster_manager.get_gluster_vol_option.
assert_called_once_with(NFS_EXPORT_DIR))
@ -401,15 +405,18 @@ class GlusterNFSVolHelperTestCase(test.TestCase):
self._helper = glusterfs.GlusterNFSVolHelper(
self._execute, self.fake_conf, gluster_manager=gluster_manager)
def test_get_vol_exports(self):
output_str = '10.0.0.1,10.0.0.2'
@ddt.data({'output_str': '10.0.0.1,10.0.0.2',
'expected': ['10.0.0.1', '10.0.0.2']},
{'output_str': None, 'expected': []})
@ddt.unpack
def test_get_vol_exports(self, output_str, expected):
self.mock_object(self._helper.gluster_manager,
'get_gluster_vol_option',
mock.Mock(return_value=output_str))
ret = self._helper._get_vol_exports()
self.assertEqual(['10.0.0.1', '10.0.0.2'], ret)
self.assertEqual(expected, ret)
(self._helper.gluster_manager.get_gluster_vol_option.
assert_called_once_with(NFS_RPC_AUTH_ALLOW))