From 7b8a00efc23d9279684816597b9d50fd54bc6854 Mon Sep 17 00:00:00 2001 From: Keepers Date: Wed, 5 Apr 2023 14:30:46 -0600 Subject: [PATCH] extend, rather than replace, NewBackup (#3045) --- #### Does this PR need a docs update or release note? - [x] :no_entry: No #### Type of change - [x] :sunflower: Feature #### Issue(s) * #2825 #### Test Plan - [x] :muscle: Manual --- src/cli/backup/backup.go | 2 +- src/cli/backup/exchange_e2e_test.go | 4 ++-- src/cli/backup/onedrive_e2e_test.go | 2 +- src/cli/backup/sharepoint_e2e_test.go | 2 +- src/cli/restore/exchange_e2e_test.go | 2 +- .../repository/loadtest/repository_load_test.go | 2 +- src/pkg/repository/repository.go | 14 +++++++++++++- src/pkg/repository/repository_test.go | 2 +- 8 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/cli/backup/backup.go b/src/cli/backup/backup.go index 9e1d4bda2..c55e49792 100644 --- a/src/cli/backup/backup.go +++ b/src/cli/backup/backup.go @@ -208,7 +208,7 @@ func runBackups( ictx = clues.Add(ctx, "resource_owner", owner) ) - bo, err := r.NewBackup(ictx, discSel, ins) + bo, err := r.NewBackupWithLookup(ictx, discSel, ins) if err != nil { errs = append(errs, clues.Wrap(err, owner).WithClues(ictx)) Errf(ictx, "%v\n", err) diff --git a/src/cli/backup/exchange_e2e_test.go b/src/cli/backup/exchange_e2e_test.go index a03f65e05..96fa0ce35 100644 --- a/src/cli/backup/exchange_e2e_test.go +++ b/src/cli/backup/exchange_e2e_test.go @@ -330,7 +330,7 @@ func (suite *PreparedBackupExchangeE2ESuite) SetupSuite() { sel.Include(scopes) - bop, err := suite.repo.NewBackup(ctx, sel.Selector, ins) + bop, err := suite.repo.NewBackupWithLookup(ctx, sel.Selector, ins) require.NoError(t, err, clues.ToCore(err)) err = bop.Run(ctx) @@ -555,7 +555,7 @@ func (suite *BackupDeleteExchangeE2ESuite) SetupSuite() { sel := selectors.NewExchangeBackup(users) sel.Include(sel.MailFolders([]string{exchange.DefaultMailFolder}, selectors.PrefixMatch())) - suite.backupOp, err = suite.repo.NewBackup(ctx, sel.Selector, nil) + suite.backupOp, err = suite.repo.NewBackup(ctx, sel.Selector) require.NoError(t, err, clues.ToCore(err)) err = suite.backupOp.Run(ctx) diff --git a/src/cli/backup/onedrive_e2e_test.go b/src/cli/backup/onedrive_e2e_test.go index f73532ff4..19555e91a 100644 --- a/src/cli/backup/onedrive_e2e_test.go +++ b/src/cli/backup/onedrive_e2e_test.go @@ -221,7 +221,7 @@ func (suite *BackupDeleteOneDriveE2ESuite) SetupSuite() { sel := selectors.NewOneDriveBackup(users) sel.Include(sel.Folders(selectors.Any())) - suite.backupOp, err = suite.repo.NewBackup(ctx, sel.Selector, ins) + suite.backupOp, err = suite.repo.NewBackupWithLookup(ctx, sel.Selector, ins) require.NoError(t, err, clues.ToCore(err)) err = suite.backupOp.Run(ctx) diff --git a/src/cli/backup/sharepoint_e2e_test.go b/src/cli/backup/sharepoint_e2e_test.go index f8b577024..42116760d 100644 --- a/src/cli/backup/sharepoint_e2e_test.go +++ b/src/cli/backup/sharepoint_e2e_test.go @@ -173,7 +173,7 @@ func (suite *BackupDeleteSharePointE2ESuite) SetupSuite() { sel := selectors.NewSharePointBackup(sites) sel.Include(testdata.SharePointBackupFolderScope(sel)) - suite.backupOp, err = suite.repo.NewBackup(ctx, sel.Selector, ins) + suite.backupOp, err = suite.repo.NewBackupWithLookup(ctx, sel.Selector, ins) require.NoError(t, err, clues.ToCore(err)) err = suite.backupOp.Run(ctx) diff --git a/src/cli/restore/exchange_e2e_test.go b/src/cli/restore/exchange_e2e_test.go index 03a783e62..23fb7dc9d 100644 --- a/src/cli/restore/exchange_e2e_test.go +++ b/src/cli/restore/exchange_e2e_test.go @@ -110,7 +110,7 @@ func (suite *RestoreExchangeE2ESuite) SetupSuite() { sel.Include(scopes) - bop, err := suite.repo.NewBackup(ctx, sel.Selector, ins) + bop, err := suite.repo.NewBackupWithLookup(ctx, sel.Selector, ins) require.NoError(t, err, clues.ToCore(err)) err = bop.Run(ctx) diff --git a/src/pkg/repository/loadtest/repository_load_test.go b/src/pkg/repository/loadtest/repository_load_test.go index 5d7a597a2..226b6e15d 100644 --- a/src/pkg/repository/loadtest/repository_load_test.go +++ b/src/pkg/repository/loadtest/repository_load_test.go @@ -120,7 +120,7 @@ func runLoadTest( ) { //revive:enable:context-as-argument t.Run(prefix+"_load_test_main", func(t *testing.T) { - b, err := r.NewBackup(ctx, bupSel, nil) + b, err := r.NewBackup(ctx, bupSel) require.NoError(t, err, clues.ToCore(err)) runBackupLoadTest(t, ctx, &b, service, usersUnderTest) diff --git a/src/pkg/repository/repository.go b/src/pkg/repository/repository.go index 63bde62a8..80686368d 100644 --- a/src/pkg/repository/repository.go +++ b/src/pkg/repository/repository.go @@ -59,6 +59,10 @@ type Repository interface { NewBackup( ctx context.Context, self selectors.Selector, + ) (operations.BackupOperation, error) + NewBackupWithLookup( + ctx context.Context, + self selectors.Selector, ins common.IDNameSwapper, ) (operations.BackupOperation, error) NewRestore( @@ -289,9 +293,17 @@ func (r *repository) Close(ctx context.Context) error { } // NewBackup generates a BackupOperation runner. +func (r repository) NewBackup( + ctx context.Context, + sel selectors.Selector, +) (operations.BackupOperation, error) { + return r.NewBackupWithLookup(ctx, sel, nil) +} + +// NewBackupWithLookup generates a BackupOperation runner. // ownerIDToName and ownerNameToID are optional populations, in case the caller has // already generated those values. -func (r repository) NewBackup( +func (r repository) NewBackupWithLookup( ctx context.Context, sel selectors.Selector, ins common.IDNameSwapper, diff --git a/src/pkg/repository/repository_test.go b/src/pkg/repository/repository_test.go index 14871731d..cdea26d27 100644 --- a/src/pkg/repository/repository_test.go +++ b/src/pkg/repository/repository_test.go @@ -198,7 +198,7 @@ func (suite *RepositoryIntegrationSuite) TestNewBackup() { r, err := repository.Initialize(ctx, acct, st, control.Options{}) require.NoError(t, err, clues.ToCore(err)) - bo, err := r.NewBackup(ctx, selectors.Selector{DiscreteOwner: "test"}, nil) + bo, err := r.NewBackup(ctx, selectors.Selector{DiscreteOwner: "test"}) require.NoError(t, err, clues.ToCore(err)) require.NotNil(t, bo) }