From ca9425a3290c34af1e95b7e27458e94ae17f1de6 Mon Sep 17 00:00:00 2001 From: neha_gupta Date: Thu, 27 Apr 2023 18:12:48 +0530 Subject: [PATCH] Don't go for snapshot deletion in case of empty backup (#3250) Fix: https://github.com/alcionai/corso/issues/3050 In case of a blank backup, don't go for snapshot deletion. #### Does this PR need a docs update or release note? - [ ] :no_entry: No #### Type of change - [x] :bug: Bugfix #### Issue(s) * https://github.com/alcionai/corso/issues/3050 #### Test Plan - [x] :muscle: Manual - [ ] :zap: Unit test --- src/pkg/repository/repository.go | 4 ---- .../repository/repository_unexported_test.go | 19 ++++++++++++++++++- src/pkg/store/mock/wrapper.go | 2 ++ 3 files changed, 20 insertions(+), 5 deletions(-) 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 }