diff --git a/cinder/backup/manager.py b/cinder/backup/manager.py index aab2c49c2ae..2f9ea19b69b 100644 --- a/cinder/backup/manager.py +++ b/cinder/backup/manager.py @@ -466,6 +466,8 @@ class BackupManager(manager.ThreadPoolManager): 'actual_status': actual_status}) backup.status = fields.BackupStatus.AVAILABLE backup.save() + self.db.volume_update(context, volume_id, + {'status': 'error_restoring'}) raise exception.InvalidVolume(reason=err) expected_status = fields.BackupStatus.RESTORING diff --git a/cinder/tests/unit/backup/test_backup.py b/cinder/tests/unit/backup/test_backup.py index d37597891b9..21ac6cdd5ee 100644 --- a/cinder/tests/unit/backup/test_backup.py +++ b/cinder/tests/unit/backup/test_backup.py @@ -940,6 +940,8 @@ class BackupTestCase(BaseBackupTest): backup, vol_id) backup = db.backup_get(self.ctxt, backup.id) + vol = db.volume_get(self.ctxt, vol_id) + self.assertEqual('error_restoring', vol['status']) self.assertEqual(fields.BackupStatus.AVAILABLE, backup['status']) def test_restore_backup_with_bad_backup_status(self):