extend, rather than replace, NewBackup (#3045)

---

#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #2825

#### Test Plan

- [x] 💪 Manual
This commit is contained in:
Keepers 2023-04-05 14:30:46 -06:00 committed by GitHub
parent 0d521bb5a7
commit 7b8a00efc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 21 additions and 9 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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,

View File

@ -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)
}