diff --git a/src/pkg/repository/repository.go b/src/pkg/repository/repository.go index ba253916a..fdf07174b 100644 --- a/src/pkg/repository/repository.go +++ b/src/pkg/repository/repository.go @@ -549,10 +549,6 @@ func deleteBackup( return errWrapper(err) } - if err := kw.DeleteSnapshot(ctx, b.SnapshotID); err != nil { - return err - } - if len(b.SnapshotID) > 0 { if err := kw.DeleteSnapshot(ctx, b.SnapshotID); err != nil { return err diff --git a/src/pkg/repository/repository_unexported_test.go b/src/pkg/repository/repository_unexported_test.go index 3d2e6d0e9..29a359166 100644 --- a/src/pkg/repository/repository_unexported_test.go +++ b/src/pkg/repository/repository_unexported_test.go @@ -112,6 +112,10 @@ func (suite *RepositoryBackupsUnitSuite) TestDeleteBackup() { }, } + bupNoSnapshot := &backup.Backup{ + BaseModel: model.BaseModel{}, + } + table := []struct { name string sw mock.BackupWrapper @@ -172,6 +176,19 @@ func (suite *RepositoryBackupsUnitSuite) TestDeleteBackup() { }, expectID: bup.ID, }, + { + name: "no snapshot present", + sw: mock.BackupWrapper{ + Backup: bupNoSnapshot, + GetErr: nil, + DeleteErr: nil, + }, + kw: mockSSDeleter{assert.AnError}, + expectErr: func(t *testing.T, result error) { + assert.NoError(t, result, clues.ToCore(result)) + }, + expectID: bupNoSnapshot.ID, + }, } for _, test := range table { suite.Run(test.name, func() { @@ -180,7 +197,7 @@ func (suite *RepositoryBackupsUnitSuite) TestDeleteBackup() { t := suite.T() - err := deleteBackup(ctx, string(bup.ID), test.kw, test.sw) + err := deleteBackup(ctx, string(test.sw.Backup.ID), test.kw, test.sw) test.expectErr(t, err) }) } diff --git a/src/pkg/store/mock/wrapper.go b/src/pkg/store/mock/wrapper.go index 3112fbdff..1802e1053 100644 --- a/src/pkg/store/mock/wrapper.go +++ b/src/pkg/store/mock/wrapper.go @@ -20,6 +20,8 @@ func (bw BackupWrapper) GetBackup( ctx context.Context, backupID model.StableID, ) (*backup.Backup, error) { + bw.Backup.SnapshotID = bw.Backup.ID.String() + return bw.Backup, bw.GetErr }