Compare commits

...

2 Commits

Author SHA1 Message Date
ryanfkeepers
dceb5f9506 quick test for tags 2023-04-11 14:59:55 -06:00
ryanfkeepers
30b86f664e tag a union of reason and fallback reasons 2023-04-11 14:54:29 -06:00
2 changed files with 42 additions and 4 deletions

View File

@ -6,6 +6,7 @@ import (
"github.com/alcionai/clues" "github.com/alcionai/clues"
"github.com/google/uuid" "github.com/google/uuid"
"golang.org/x/exp/slices"
"github.com/alcionai/corso/src/internal/common" "github.com/alcionai/corso/src/internal/common"
"github.com/alcionai/corso/src/internal/common/crash" "github.com/alcionai/corso/src/internal/common/crash"
@ -269,7 +270,7 @@ func (op *BackupOperation) do(
ctx, ctx,
op.kopia, op.kopia,
op.account.ID(), op.account.ID(),
reasons, reasons, fallbackReasons,
mans, mans,
cs, cs,
excludes, excludes,
@ -405,7 +406,7 @@ func consumeBackupCollections(
ctx context.Context, ctx context.Context,
bc inject.BackupConsumer, bc inject.BackupConsumer,
tenantID string, tenantID string,
reasons []kopia.Reason, reasons, fallbackReasons []kopia.Reason,
mans []*kopia.ManifestEntry, mans []*kopia.ManifestEntry,
cs []data.BackupCollection, cs []data.BackupCollection,
excludes map[string]map[string]struct{}, excludes map[string]map[string]struct{},
@ -425,7 +426,8 @@ func consumeBackupCollections(
kopia.TagBackupCategory: "", kopia.TagBackupCategory: "",
} }
for _, reason := range reasons { reunion := append(slices.Clone(reasons), fallbackReasons...)
for _, reason := range reunion {
for _, k := range reason.TagKeys() { for _, k := range reason.TagKeys() {
tags[k] = "" tags[k] = ""
} }

View File

@ -561,6 +561,15 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_ConsumeBackupDataCollections
ctx, flush := tester.NewContext() ctx, flush := tester.NewContext()
defer flush() defer flush()
expectTags := map[string]string{
"backup-id": "",
"bob": "",
"bobby": "",
"exchangecontacts": "",
"exchangeemail": "",
"is-canon-backup": "",
}
mbu := &mockBackupConsumer{ mbu := &mockBackupConsumer{
checkFunc: func( checkFunc: func(
bases []kopia.IncrementalBase, bases []kopia.IncrementalBase,
@ -568,16 +577,43 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_ConsumeBackupDataCollections
tags map[string]string, tags map[string]string,
buildTreeWithBase bool, buildTreeWithBase bool,
) { ) {
assert.Equal(t, expectTags, tags)
assert.ElementsMatch(t, test.expected, bases) assert.ElementsMatch(t, test.expected, bases)
}, },
} }
reasons := []kopia.Reason{
{
ResourceOwner: "bob",
Service: path.ExchangeService,
Category: path.EmailCategory,
},
{
ResourceOwner: "bobby",
Service: path.ExchangeService,
Category: path.EmailCategory,
},
}
fallbackReasons := []kopia.Reason{
{
ResourceOwner: "bob",
Service: path.ExchangeService,
Category: path.EmailCategory,
},
{
ResourceOwner: "bob",
Service: path.ExchangeService,
Category: path.ContactsCategory,
},
}
//nolint:errcheck //nolint:errcheck
consumeBackupCollections( consumeBackupCollections(
ctx, ctx,
mbu, mbu,
tenant, tenant,
nil, reasons, fallbackReasons,
test.inputMan, test.inputMan,
nil, nil,
nil, nil,