diff --git a/plugins/backup/nas/src/main/java/org/apache/cloudstack/backup/NASBackupProvider.java b/plugins/backup/nas/src/main/java/org/apache/cloudstack/backup/NASBackupProvider.java index 57244305ebba..e8aebd6c7b52 100644 --- a/plugins/backup/nas/src/main/java/org/apache/cloudstack/backup/NASBackupProvider.java +++ b/plugins/backup/nas/src/main/java/org/apache/cloudstack/backup/NASBackupProvider.java @@ -669,8 +669,8 @@ public Pair takeBackup(final VirtualMachine vm, Boolean quiesce return new Pair<>(false, backupVO); } backupVO.setStatus(Backup.Status.Failed); - backupDao.remove(backupVO.getId()); - return new Pair<>(false, null); + backupDao.update(backupVO.getId(), backupVO); + return new Pair<>(false, backupVO); } } diff --git a/plugins/backup/nas/src/test/java/org/apache/cloudstack/backup/NASBackupProviderTest.java b/plugins/backup/nas/src/test/java/org/apache/cloudstack/backup/NASBackupProviderTest.java index 9e3d7b77c152..1a528889e186 100644 --- a/plugins/backup/nas/src/test/java/org/apache/cloudstack/backup/NASBackupProviderTest.java +++ b/plugins/backup/nas/src/test/java/org/apache/cloudstack/backup/NASBackupProviderTest.java @@ -311,7 +311,7 @@ public void takeBackupFailureNeedingCleanupReturnsErrorBackup() throws AgentUnav } @Test - public void takeBackupFailureWithoutCleanupRemovesBackup() throws AgentUnavailableException, OperationTimedoutException { + public void takeBackupFailureWithoutCleanupKeepsFailedBackup() throws AgentUnavailableException, OperationTimedoutException { VMInstanceVO vm = mockRunningVmForBackup(1L, 2L, 3L, 4L, 5L, 6L); BackupAnswer answer = mock(BackupAnswer.class); @@ -324,8 +324,10 @@ public void takeBackupFailureWithoutCleanupRemovesBackup() throws AgentUnavailab Pair result = nasBackupProvider.takeBackup(vm, false, false); Assert.assertFalse(result.first()); - Assert.assertNull(result.second()); - Mockito.verify(backupDao).remove(Mockito.anyLong()); + Assert.assertNotNull(result.second()); + Assert.assertEquals(Backup.Status.Failed, result.second().getStatus()); + Mockito.verify(backupDao).update(Mockito.anyLong(), Mockito.any(BackupVO.class)); + Mockito.verify(backupDao, Mockito.never()).remove(Mockito.anyLong()); Mockito.verifyNoInteractions(alertManager); }