NetApp cDOT driver clones NFS export policy

When clustered Data ONTAP clones a flexvol, the clone gets the
NFS export policy of its parent. Manila expects the clone to be
independent of its parent, so it should be given its own export
policy. This isn't happening in the Kilo cDOT driver.

Change-Id: I5067fc5729bec62de19d1aeaed7ed60d2224e498
Closes-Bug: #1446369
(cherry picked from commit b907ca09f1)
This commit is contained in:
Clinton Knight 2015-04-20 16:10:14 -04:00 committed by Ben Swartzlander
parent f8cc5784f6
commit 1ce9384b65
2 changed files with 6 additions and 1 deletions

View File

@ -33,6 +33,7 @@ class NetAppCmodeNFSHelper(base.NetAppBaseHelper):
@na_utils.trace
def create_share(self, share, share_name, export_addresses):
"""Creates NFS share."""
self._client.clear_nfs_export_policy_for_volume(share_name)
self._ensure_export_policy(share, share_name)
export_path = self._client.get_volume_junction_path(share_name)
return [':'.join([export_address, export_path])

View File

@ -50,6 +50,8 @@ class NetAppClusteredNFSHelperTestCase(test.TestCase):
expected = [':'.join([fake.SHARE_ADDRESS_1, fake.NFS_SHARE_PATH])]
self.assertEqual(expected, result)
self.mock_client.clear_nfs_export_policy_for_volume.\
assert_called_once_with(fake.SHARE_NAME)
self.assertTrue(mock_ensure_export_policy.called)
def test_create_share_multiple(self):
@ -67,6 +69,8 @@ class NetAppClusteredNFSHelperTestCase(test.TestCase):
expected = [':'.join([fake.SHARE_ADDRESS_1, fake.NFS_SHARE_PATH]),
':'.join([fake.SHARE_ADDRESS_2, fake.NFS_SHARE_PATH])]
self.assertEqual(expected, result)
self.mock_client.clear_nfs_export_policy_for_volume.\
assert_called_once_with(fake.SHARE_NAME)
self.assertTrue(mock_ensure_export_policy.called)
def test_delete_share(self):
@ -226,4 +230,4 @@ class NetAppClusteredNFSHelperTestCase(test.TestCase):
self.assertFalse(self.mock_client.create_nfs_export_policy.called)
self.mock_client.rename_nfs_export_policy.assert_called_once_with(
'fake', fake.EXPORT_POLICY_NAME)
'fake', fake.EXPORT_POLICY_NAME)