From 722a22eac20109081662cc1796560963578575c6 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Wed, 23 Sep 2015 15:56:22 +0200 Subject: [PATCH] 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 42eb36b74594b6431c5cb0915a1bd327aca3f11f) --- manila/share/drivers/glusterfs/__init__.py | 2 +- manila/tests/share/drivers/test_glusterfs.py | 21 +++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/manila/share/drivers/glusterfs/__init__.py b/manila/share/drivers/glusterfs/__init__.py index 279b07e12a..0de8f76824 100644 --- a/manila/share/drivers/glusterfs/__init__.py +++ b/manila/share/drivers/glusterfs/__init__.py @@ -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. diff --git a/manila/tests/share/drivers/test_glusterfs.py b/manila/tests/share/drivers/test_glusterfs.py index 889fc537fe..691fbf2ad2 100644 --- a/manila/tests/share/drivers/test_glusterfs.py +++ b/manila/tests/share/drivers/test_glusterfs.py @@ -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))