Merge "Cleanup in backup reset status"
This commit is contained in:
commit
962dbb5cf8
@ -855,6 +855,15 @@ class BackupManager(manager.SchedulerDependentManager):
|
|||||||
raise exception.BackupVerifyUnsupportedDriver(
|
raise exception.BackupVerifyUnsupportedDriver(
|
||||||
reason=msg)
|
reason=msg)
|
||||||
|
|
||||||
|
# Needs to clean temporary volumes and snapshots.
|
||||||
|
try:
|
||||||
|
self._cleanup_temp_volumes_snapshots_for_one_backup(
|
||||||
|
context, backup)
|
||||||
|
except Exception:
|
||||||
|
LOG.exception(_LE("Problem cleaning temp volumes and "
|
||||||
|
"snapshots for backup %(bkup)s."),
|
||||||
|
{'bkup': backup.id})
|
||||||
|
|
||||||
# send notification to ceilometer
|
# send notification to ceilometer
|
||||||
notifier_info = {'id': backup.id, 'update': {'status': status}}
|
notifier_info = {'id': backup.id, 'update': {'status': status}}
|
||||||
notifier = rpc.get_notifier('backupStatusUpdate')
|
notifier = rpc.get_notifier('backupStatusUpdate')
|
||||||
|
@ -1097,8 +1097,10 @@ class BackupTestCaseWithVerify(BaseBackupTest):
|
|||||||
backup = db.backup_get(self.ctxt, imported_record.id)
|
backup = db.backup_get(self.ctxt, imported_record.id)
|
||||||
self.assertEqual(fields.BackupStatus.ERROR, backup['status'])
|
self.assertEqual(fields.BackupStatus.ERROR, backup['status'])
|
||||||
|
|
||||||
|
@mock.patch.object(manager.BackupManager,
|
||||||
|
'_cleanup_temp_volumes_snapshots_for_one_backup')
|
||||||
def test_backup_reset_status_from_nonrestoring_to_available(
|
def test_backup_reset_status_from_nonrestoring_to_available(
|
||||||
self):
|
self, mock_clean_temp):
|
||||||
vol_id = self._create_volume_db_entry(status='available',
|
vol_id = self._create_volume_db_entry(status='available',
|
||||||
size=1)
|
size=1)
|
||||||
backup = self._create_backup_db_entry(status=fields.BackupStatus.ERROR,
|
backup = self._create_backup_db_entry(status=fields.BackupStatus.ERROR,
|
||||||
@ -1111,6 +1113,7 @@ class BackupTestCaseWithVerify(BaseBackupTest):
|
|||||||
self.backup_mgr.reset_status(self.ctxt,
|
self.backup_mgr.reset_status(self.ctxt,
|
||||||
backup,
|
backup,
|
||||||
fields.BackupStatus.AVAILABLE)
|
fields.BackupStatus.AVAILABLE)
|
||||||
|
mock_clean_temp.assert_called_once_with(self.ctxt, backup)
|
||||||
backup = db.backup_get(self.ctxt, backup.id)
|
backup = db.backup_get(self.ctxt, backup.id)
|
||||||
self.assertEqual(fields.BackupStatus.AVAILABLE, backup['status'])
|
self.assertEqual(fields.BackupStatus.AVAILABLE, backup['status'])
|
||||||
|
|
||||||
@ -1140,7 +1143,10 @@ class BackupTestCaseWithVerify(BaseBackupTest):
|
|||||||
backup = db.backup_get(self.ctxt, backup.id)
|
backup = db.backup_get(self.ctxt, backup.id)
|
||||||
self.assertEqual(fields.BackupStatus.ERROR, backup['status'])
|
self.assertEqual(fields.BackupStatus.ERROR, backup['status'])
|
||||||
|
|
||||||
def test_backup_reset_status_from_restoring_to_available(self):
|
@mock.patch.object(manager.BackupManager,
|
||||||
|
'_cleanup_temp_volumes_snapshots_for_one_backup')
|
||||||
|
def test_backup_reset_status_from_restoring_to_available(
|
||||||
|
self, mock_clean_temp):
|
||||||
volume = db.volume_create(self.ctxt,
|
volume = db.volume_create(self.ctxt,
|
||||||
{'status': 'available',
|
{'status': 'available',
|
||||||
'host': 'test',
|
'host': 'test',
|
||||||
@ -1152,10 +1158,13 @@ class BackupTestCaseWithVerify(BaseBackupTest):
|
|||||||
|
|
||||||
self.backup_mgr.reset_status(self.ctxt, backup,
|
self.backup_mgr.reset_status(self.ctxt, backup,
|
||||||
fields.BackupStatus.AVAILABLE)
|
fields.BackupStatus.AVAILABLE)
|
||||||
|
mock_clean_temp.assert_called_once_with(self.ctxt, backup)
|
||||||
backup = db.backup_get(self.ctxt, backup.id)
|
backup = db.backup_get(self.ctxt, backup.id)
|
||||||
self.assertEqual(fields.BackupStatus.AVAILABLE, backup['status'])
|
self.assertEqual(fields.BackupStatus.AVAILABLE, backup['status'])
|
||||||
|
|
||||||
def test_backup_reset_status_to_error(self):
|
@mock.patch.object(manager.BackupManager,
|
||||||
|
'_cleanup_temp_volumes_snapshots_for_one_backup')
|
||||||
|
def test_backup_reset_status_to_error(self, mock_clean_temp):
|
||||||
volume = db.volume_create(self.ctxt,
|
volume = db.volume_create(self.ctxt,
|
||||||
{'status': 'available',
|
{'status': 'available',
|
||||||
'host': 'test',
|
'host': 'test',
|
||||||
@ -1166,6 +1175,7 @@ class BackupTestCaseWithVerify(BaseBackupTest):
|
|||||||
volume_id=volume['id'])
|
volume_id=volume['id'])
|
||||||
self.backup_mgr.reset_status(self.ctxt, backup,
|
self.backup_mgr.reset_status(self.ctxt, backup,
|
||||||
fields.BackupStatus.ERROR)
|
fields.BackupStatus.ERROR)
|
||||||
|
mock_clean_temp.assert_called_once_with(self.ctxt, backup)
|
||||||
backup = db.backup_get(self.ctxt, backup['id'])
|
backup = db.backup_get(self.ctxt, backup['id'])
|
||||||
self.assertEqual(fields.BackupStatus.ERROR, backup['status'])
|
self.assertEqual(fields.BackupStatus.ERROR, backup['status'])
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user