Rename method 'delete' to 'delete_backup' in backup drivers
Once we'll get generic-backup-implementation blueprint done it will be confusion to have 'delete' method in volume drivers. After this change we'll have two methods: 'delete_volume' and 'delete_backup' which should be clear for maintainers. This patch doesn't change any public API so it should be clear for operators and users. Change-Id: I7f975066c1c848fec7e930a9d71b7225f3250acc Related-blueprint: generic-backup-implementation
This commit is contained in:
parent
98ee2aa063
commit
81466bb1e7
cinder
backup
interface
tests/unit/backup
@ -490,7 +490,7 @@ class ChunkedBackupDriver(driver.BackupDriver):
|
||||
is_backup_canceled = True
|
||||
# To avoid the chunk left when deletion complete, need to
|
||||
# clean up the object of chunk again.
|
||||
self.delete(backup)
|
||||
self.delete_backup(backup)
|
||||
LOG.debug('Cancel the backup process of %s.', backup.id)
|
||||
break
|
||||
data_offset = volume_file.tell()
|
||||
@ -578,7 +578,7 @@ class ChunkedBackupDriver(driver.BackupDriver):
|
||||
except Exception:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception("Backup volume metadata failed.")
|
||||
self.delete(backup)
|
||||
self.delete_backup(backup)
|
||||
|
||||
self._finalize_backup(backup, container, object_meta, object_sha256)
|
||||
|
||||
@ -708,7 +708,7 @@ class ChunkedBackupDriver(driver.BackupDriver):
|
||||
LOG.debug('restore %(backup_id)s to %(volume_id)s finished.',
|
||||
{'backup_id': backup_id, 'volume_id': volume_id})
|
||||
|
||||
def delete(self, backup):
|
||||
def delete_backup(self, backup):
|
||||
"""Delete the given backup."""
|
||||
container = backup['container']
|
||||
object_prefix = backup['service_metadata']
|
||||
|
@ -373,7 +373,7 @@ class BackupDriver(base.Base):
|
||||
return
|
||||
|
||||
@abc.abstractmethod
|
||||
def delete(self, backup):
|
||||
def delete_backup(self, backup):
|
||||
"""Delete a saved backup."""
|
||||
return
|
||||
|
||||
|
@ -905,7 +905,7 @@ class CephBackupDriver(driver.BackupDriver):
|
||||
self._full_backup(backup, volume_file, volume.name, length)
|
||||
except exception.BackupOperationError:
|
||||
with excutils.save_and_reraise_exception():
|
||||
self.delete(backup)
|
||||
self.delete_backup(backup)
|
||||
|
||||
if backup_metadata:
|
||||
try:
|
||||
@ -913,7 +913,7 @@ class CephBackupDriver(driver.BackupDriver):
|
||||
except exception.BackupOperationError:
|
||||
with excutils.save_and_reraise_exception():
|
||||
# Cleanup.
|
||||
self.delete(backup)
|
||||
self.delete_backup(backup)
|
||||
|
||||
LOG.debug("Backup '%(backup_id)s' of volume %(volume_id)s finished.",
|
||||
{'backup_id': backup.id, 'volume_id': volume.id})
|
||||
@ -1197,7 +1197,7 @@ class CephBackupDriver(driver.BackupDriver):
|
||||
'%(error)s.', {'error': e, 'volume': volume_id})
|
||||
raise
|
||||
|
||||
def delete(self, backup):
|
||||
def delete_backup(self, backup):
|
||||
"""Delete the given backup from Ceph object store."""
|
||||
LOG.debug('Delete started for backup=%s', backup.id)
|
||||
|
||||
|
@ -474,7 +474,7 @@ class TSMBackupDriver(driver.BackupDriver):
|
||||
{'backup_id': backup.id,
|
||||
'volume_id': volume_id})
|
||||
|
||||
def delete(self, backup):
|
||||
def delete_backup(self, backup):
|
||||
"""Delete the given backup from TSM server.
|
||||
|
||||
:param backup: backup information for volume
|
||||
|
@ -522,7 +522,7 @@ class BackupManager(manager.ThreadPoolManager):
|
||||
|
||||
try:
|
||||
backup_service = self.service.get_backup_driver(context)
|
||||
backup_service.delete(backup)
|
||||
backup_service.delete_backup(backup)
|
||||
except Exception as err:
|
||||
with excutils.save_and_reraise_exception():
|
||||
self._update_backup_error(backup, six.text_type(err))
|
||||
|
@ -96,7 +96,7 @@ class BackupDriver(base.CinderInterface):
|
||||
:param volume_file: The volume or file to read the data from.
|
||||
"""
|
||||
|
||||
def delete(self, backup):
|
||||
def delete_backup(self, backup):
|
||||
"""Delete a backup from the backup store.
|
||||
|
||||
:param backup: The backup to be deleted.
|
||||
|
@ -567,7 +567,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
|
||||
In backup(), after an exception.BackupOperationError occurs in
|
||||
self._backup_metadata(), we want to check the process when the
|
||||
second exception occurs in self.delete().
|
||||
second exception occurs in self.delete_backup().
|
||||
"""
|
||||
backup_name = self.service._get_backup_base_name(self.backup_id,
|
||||
diff_format=True)
|
||||
@ -602,7 +602,8 @@ class BackupCephTestCase(test.TestCase):
|
||||
|
||||
# Raise a pseudo exception.BackupOperationError.
|
||||
mock_backup_metadata.side_effect = mock_backup_metadata_side_effect
|
||||
with mock.patch.object(self.service, 'delete') as mock_delete:
|
||||
with mock.patch.object(self.service, 'delete_backup') as \
|
||||
mock_delete:
|
||||
def mock_delete_side_effect(backup):
|
||||
raise self.service.rbd.ImageBusy()
|
||||
|
||||
@ -773,7 +774,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
snap_name = self.service._get_new_snap_name(self.backup_id)
|
||||
mock_del_backup_snap.return_value = (snap_name, 0)
|
||||
|
||||
self.service.delete(self.backup)
|
||||
self.service.delete_backup(self.backup)
|
||||
self.assertTrue(mock_del_backup_snap.called)
|
||||
|
||||
self.assertTrue(self.mock_rbd.RBD.return_value.list.called)
|
||||
@ -788,7 +789,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
self.mock_rbd.RBD.return_value.list.return_value = [backup_name]
|
||||
|
||||
with mock.patch.object(self.service, 'get_backup_snaps'):
|
||||
self.service.delete(self.backup)
|
||||
self.service.delete_backup(self.backup)
|
||||
self.assertTrue(self.mock_rbd.RBD.return_value.remove.called)
|
||||
|
||||
@common_mocks
|
||||
@ -816,7 +817,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
@mock.patch('cinder.backup.drivers.ceph.VolumeMetadataBackup', spec=True)
|
||||
def test_delete(self, mock_meta_backup):
|
||||
with mock.patch.object(self.service, '_try_delete_base_image'):
|
||||
self.service.delete(self.backup)
|
||||
self.service.delete_backup(self.backup)
|
||||
self.assertEqual([], RAISED_EXCEPTIONS)
|
||||
|
||||
@common_mocks
|
||||
@ -826,7 +827,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
mock_del_base:
|
||||
mock_del_base.side_effect = self.mock_rbd.ImageNotFound
|
||||
# ImageNotFound exception is caught so that db entry can be cleared
|
||||
self.service.delete(self.backup)
|
||||
self.service.delete_backup(self.backup)
|
||||
self.assertEqual([MockImageNotFoundException], RAISED_EXCEPTIONS)
|
||||
|
||||
@common_mocks
|
||||
@ -837,7 +838,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
mock_del_base.side_effect = self.mock_rados.ObjectNotFound
|
||||
# ObjectNotFound exception is caught so that db entry can be
|
||||
# cleared
|
||||
self.service.delete(self.backup)
|
||||
self.service.delete_backup(self.backup)
|
||||
self.assertEqual([MockObjectNotFoundException],
|
||||
RAISED_EXCEPTIONS)
|
||||
mock_del_base.assert_called_once_with(self.backup)
|
||||
@ -1108,7 +1109,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
|
||||
@common_mocks
|
||||
def test_backup_metadata_error(self):
|
||||
"""Ensure that delete() is called if the metadata backup fails.
|
||||
"""Ensure that delete_backup() is called if the metadata backup fails.
|
||||
|
||||
Also ensure that the exception is propagated to the caller.
|
||||
"""
|
||||
@ -1119,7 +1120,7 @@ class BackupCephTestCase(test.TestCase):
|
||||
with mock.patch.object(self.service, '_file_is_rbd',
|
||||
return_value=False):
|
||||
with mock.patch.object(self.service, '_full_backup'):
|
||||
with mock.patch.object(self.service, 'delete') as \
|
||||
with mock.patch.object(self.service, 'delete_backup') as \
|
||||
mock_delete:
|
||||
self.assertRaises(exception.BackupOperationError,
|
||||
self.service.backup, self.backup,
|
||||
|
@ -443,13 +443,14 @@ class GoogleBackupDriverTestCase(test.TestCase):
|
||||
@gcs_client
|
||||
@mock.patch.object(google_dr.GoogleBackupDriver, '_backup_metadata',
|
||||
fake_backup_metadata)
|
||||
@mock.patch.object(google_dr.GoogleBackupDriver, 'delete', fake_delete)
|
||||
@mock.patch.object(google_dr.GoogleBackupDriver, 'delete_backup',
|
||||
fake_delete)
|
||||
def test_backup_backup_metadata_fail2(self):
|
||||
"""Test of when an exception occurs in an exception handler.
|
||||
|
||||
In backup(), after an exception occurs in
|
||||
self._backup_metadata(), we want to check the process when the
|
||||
second exception occurs in self.delete().
|
||||
second exception occurs in self.delete_backup().
|
||||
"""
|
||||
volume_id = '2164421d-f181-4db7-b9bd-000000eeb628'
|
||||
|
||||
@ -523,7 +524,7 @@ class GoogleBackupDriverTestCase(test.TestCase):
|
||||
backup = self._create_backup_db_entry(volume_id=volume_id,
|
||||
service_metadata=object_prefix)
|
||||
service = google_dr.GoogleBackupDriver(self.ctxt)
|
||||
service.delete(backup)
|
||||
service.delete_backup(backup)
|
||||
|
||||
@gcs_client
|
||||
@mock.patch.object(google_dr.GoogleBackupDriver, 'delete_object',
|
||||
@ -532,7 +533,7 @@ class GoogleBackupDriverTestCase(test.TestCase):
|
||||
volume_id = 'ee30d649-72a6-49a5-b78d-000000edb6b1'
|
||||
backup = self._create_backup_db_entry(volume_id=volume_id)
|
||||
service = google_dr.GoogleBackupDriver(self.ctxt)
|
||||
service.delete(backup)
|
||||
service.delete_backup(backup)
|
||||
|
||||
@gcs_client
|
||||
def test_get_compressor(self):
|
||||
|
@ -518,7 +518,7 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
|
||||
In backup(), after an exception occurs in
|
||||
self._backup_metadata(), we want to check the process when the
|
||||
second exception occurs in self.delete().
|
||||
second exception occurs in self.delete_backup().
|
||||
"""
|
||||
volume_id = fake.VOLUME_ID
|
||||
|
||||
@ -539,7 +539,7 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
raise exception.BackupOperationError()
|
||||
|
||||
# Raise a pseudo exception.BackupOperationError.
|
||||
self.mock_object(nfs.NFSBackupDriver, 'delete', fake_delete)
|
||||
self.mock_object(nfs.NFSBackupDriver, 'delete_backup', fake_delete)
|
||||
|
||||
# We expect that the second exception is notified.
|
||||
self.assertRaises(exception.BackupOperationError,
|
||||
@ -654,7 +654,7 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
service = nfs.NFSBackupDriver(self.ctxt)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.delete(backup)
|
||||
service.delete_backup(backup)
|
||||
|
||||
def test_get_compressor(self):
|
||||
service = nfs.NFSBackupDriver(self.ctxt)
|
||||
|
@ -654,7 +654,7 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
|
||||
In backup(), after an exception occurs in
|
||||
self._backup_metadata(), we want to check the process when the
|
||||
second exception occurs in self.delete().
|
||||
second exception occurs in self.delete_backup().
|
||||
"""
|
||||
volume_id = '2164421d-f181-4db7-b9bd-000000eeb628'
|
||||
|
||||
@ -675,7 +675,8 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
raise exception.BackupOperationError()
|
||||
|
||||
# Raise a pseudo exception.BackupOperationError.
|
||||
self.mock_object(swift_dr.SwiftBackupDriver, 'delete', fake_delete)
|
||||
self.mock_object(swift_dr.SwiftBackupDriver, 'delete_backup',
|
||||
fake_delete)
|
||||
|
||||
# We expect that the second exception is notified.
|
||||
self.assertRaises(exception.BackupOperationError,
|
||||
@ -775,7 +776,7 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
service_metadata=object_prefix)
|
||||
service = swift_dr.SwiftBackupDriver(self.ctxt)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.delete(backup)
|
||||
service.delete_backup(backup)
|
||||
|
||||
def test_delete_wraps_socket_error(self):
|
||||
volume_id = 'f74cb6fa-2900-40df-87ac-0000000f72ea'
|
||||
@ -787,7 +788,7 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
service = swift_dr.SwiftBackupDriver(self.ctxt)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
self.assertRaises(exception.SwiftConnectionFailed,
|
||||
service.delete,
|
||||
service.delete_backup,
|
||||
backup)
|
||||
|
||||
def test_delete_without_object_prefix(self):
|
||||
@ -803,7 +804,7 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
service = swift_dr.SwiftBackupDriver(self.ctxt)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.delete(backup)
|
||||
service.delete_backup(backup)
|
||||
|
||||
def test_get_compressor(self):
|
||||
service = swift_dr.SwiftBackupDriver(self.ctxt)
|
||||
|
@ -295,8 +295,8 @@ class BackupTSMTestCase(test.TestCase):
|
||||
self.driver.restore(backup2, volume_id, volume_file)
|
||||
|
||||
# Delete both backups
|
||||
self.driver.delete(backup2)
|
||||
self.driver.delete(backup1)
|
||||
self.driver.delete_backup(backup2)
|
||||
self.driver.delete_backup(backup1)
|
||||
|
||||
@mock.patch.object(tsm.os, 'stat', fake_stat_file)
|
||||
def test_backup_file(self):
|
||||
@ -326,8 +326,8 @@ class BackupTSMTestCase(test.TestCase):
|
||||
self.driver.restore(backup2, volume_id, volume_file)
|
||||
|
||||
# Delete both backups
|
||||
self.driver.delete(backup1)
|
||||
self.driver.delete(backup2)
|
||||
self.driver.delete_backup(backup1)
|
||||
self.driver.delete_backup(backup2)
|
||||
|
||||
@mock.patch.object(tsm.os, 'stat', fake_stat_illegal)
|
||||
def test_backup_invalid_mode(self):
|
||||
@ -350,4 +350,4 @@ class BackupTSMTestCase(test.TestCase):
|
||||
volume_file)
|
||||
|
||||
self.assertRaises(exception.InvalidBackup,
|
||||
self.driver.delete, backup1)
|
||||
self.driver.delete_backup, backup1)
|
||||
|
@ -26,7 +26,7 @@ class FakeBackupService(driver.BackupDriver):
|
||||
def restore(self, backup, volume_id, volume_file):
|
||||
pass
|
||||
|
||||
def delete(self, backup):
|
||||
def delete_backup(self, backup):
|
||||
# if backup has magic name of 'fail_on_delete'
|
||||
# we raise an error - useful for some tests -
|
||||
# otherwise we return without error
|
||||
|
Loading…
x
Reference in New Issue
Block a user