diff --git a/manila/share/drivers/hpe/hpe_3par_mediator.py b/manila/share/drivers/hpe/hpe_3par_mediator.py index cdbac26513..3c86cf0e7c 100644 --- a/manila/share/drivers/hpe/hpe_3par_mediator.py +++ b/manila/share/drivers/hpe/hpe_3par_mediator.py @@ -648,8 +648,10 @@ class HPE3ParMediator(object): vfs, allow_cross_protocol=True) + removed_writable = False if fstore: self._delete_share(share_name, protocol, fpg, vfs, fstore) + removed_writable = True share_name_ro = self.ensure_prefix(share_id, readonly=True) if not fstore: @@ -671,7 +673,7 @@ class HPE3ParMediator(object): LOG.exception(msg) raise exception.ShareBackendException(msg=msg) - else: + elif removed_writable: try: # Attempt to remove file tree on delete when using nested # shares. If the file tree cannot be removed for whatever diff --git a/manila/tests/share/drivers/hpe/test_hpe_3par_mediator.py b/manila/tests/share/drivers/hpe/test_hpe_3par_mediator.py index 63646eefeb..facedca59e 100644 --- a/manila/tests/share/drivers/hpe/test_hpe_3par_mediator.py +++ b/manila/tests/share/drivers/hpe/test_hpe_3par_mediator.py @@ -657,18 +657,8 @@ class HPE3ParMediatorTestCase(test.TestCase): self.mock_object(self.mediator, '_find_fstore', mock.Mock(side_effect=fstores)) - self.mock_object(self.mediator, - '_create_mount_directory', - mock.Mock(return_value={})) - self.mock_object(self.mediator, - '_mount_super_share', - mock.Mock(return_value={})) - self.mock_object(self.mediator, - '_delete_share_directory', - mock.Mock(return_value={})) - self.mock_object(self.mediator, - '_unmount_super_share', - mock.Mock(return_value={})) + self.mock_object(self.mediator, '_delete_file_tree') + self.mock_object(self.mediator, '_update_capacity_quotas') self.mediator.delete_share(constants.EXPECTED_PROJECT_ID, constants.EXPECTED_SHARE_ID, @@ -685,17 +675,8 @@ class HPE3ParMediatorTestCase(test.TestCase): fstore=constants.EXPECTED_FSTORE ) - expected_mount_path = constants.EXPECTED_MOUNT_PATH + ( - constants.EXPECTED_SHARE_ID) - self.mediator._create_mount_directory.assert_called_with( - expected_mount_path) - self.mediator._mount_super_share.assert_called_with( - constants.NFS_LOWER, expected_mount_path, constants.EXPECTED_FPG, - constants.EXPECTED_VFS, constants.EXPECTED_PROJECT_ID) - self.mediator._delete_share_directory.assert_called_with( - expected_mount_path) - self.mediator._unmount_super_share.assert_called_with( - expected_mount_path) + self.assertFalse(self.mediator._delete_file_tree.called) + self.assertFalse(self.mediator._update_capacity_quotas.called) def test_mediator_delete_share_exception(self): self.init_mediator()