diff --git a/src/internal/kopia/backup_bases.go b/src/internal/kopia/backup_bases.go index e96024692..c523ed92d 100644 --- a/src/internal/kopia/backup_bases.go +++ b/src/internal/kopia/backup_bases.go @@ -8,6 +8,7 @@ import ( "golang.org/x/exp/slices" "github.com/alcionai/corso/src/internal/version" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/identity" "github.com/alcionai/corso/src/pkg/logger" ) @@ -17,17 +18,17 @@ var _ backup.BackupBases = &backupBases{} type backupBases struct { // backups and mergeBases should be modified together as they relate similar // data. - backups []BackupEntry - mergeBases []ManifestEntry - assistBackups []BackupEntry - assistBases []ManifestEntry + backups []backup.BackupEntry + mergeBases []backup.ManifestEntry + assistBackups []backup.BackupEntry + assistBases []backup.ManifestEntry // disableAssistBases denote whether any assist bases should be returned to // kopia during snapshot operation. disableAssistBases bool } -func (bb *backupBases) SnapshotAssistBases() []ManifestEntry { +func (bb *backupBases) SnapshotAssistBases() []backup.ManifestEntry { if bb.disableAssistBases { return nil } @@ -39,14 +40,14 @@ func (bb *backupBases) SnapshotAssistBases() []ManifestEntry { func (bb *backupBases) ConvertToAssistBase(manifestID manifest.ID) { var ( - snapshotMan ManifestEntry - base BackupEntry + snapshotMan backup.ManifestEntry + base backup.BackupEntry snapFound bool ) idx := slices.IndexFunc( bb.mergeBases, - func(man ManifestEntry) bool { + func(man backup.ManifestEntry) bool { return man.ID == manifestID }) if idx >= 0 { @@ -57,7 +58,7 @@ func (bb *backupBases) ConvertToAssistBase(manifestID manifest.ID) { idx = slices.IndexFunc( bb.backups, - func(bup BackupEntry) bool { + func(bup backup.BackupEntry) bool { return bup.SnapshotID == string(manifestID) }) if idx >= 0 { @@ -72,11 +73,11 @@ func (bb *backupBases) ConvertToAssistBase(manifestID manifest.ID) { } } -func (bb backupBases) Backups() []BackupEntry { +func (bb backupBases) Backups() []backup.BackupEntry { return slices.Clone(bb.backups) } -func (bb backupBases) UniqueAssistBackups() []BackupEntry { +func (bb backupBases) UniqueAssistBackups() []backup.BackupEntry { if bb.disableAssistBases { return nil } @@ -100,7 +101,7 @@ func (bb *backupBases) MinBackupVersion() int { return min } -func (bb backupBases) MergeBases() []ManifestEntry { +func (bb backupBases) MergeBases() []backup.ManifestEntry { return slices.Clone(bb.mergeBases) } @@ -117,7 +118,7 @@ func (bb *backupBases) DisableMergeBases() { bb.backups = nil } -func (bb backupBases) UniqueAssistBases() []ManifestEntry { +func (bb backupBases) UniqueAssistBases() []backup.ManifestEntry { if bb.disableAssistBases { return nil } @@ -152,9 +153,9 @@ func (bb *backupBases) DisableAssistBases() { // MergeBase in the other BackupBases. func (bb *backupBases) MergeBackupBases( ctx context.Context, - other BackupBases, + other backup.BackupBases, reasonToKey func(reason identity.Reasoner) string, -) BackupBases { +) backup.BackupBases { if other == nil || (len(other.MergeBases()) == 0 && len(other.UniqueAssistBases()) == 0) { return bb } @@ -183,7 +184,7 @@ func (bb *backupBases) MergeBackupBases( } } - var toAdd []ManifestEntry + var toAdd []backup.ManifestEntry // Calculate the set of mergeBases to pull from other into this one. for _, m := range other.MergeBases() { @@ -244,10 +245,10 @@ func (bb *backupBases) MergeBackupBases( func findNonUniqueManifests( ctx context.Context, - manifests []ManifestEntry, + manifests []backup.ManifestEntry, ) map[manifest.ID]struct{} { // ReasonKey -> manifests with that reason. - reasons := map[string][]ManifestEntry{} + reasons := map[string][]backup.ManifestEntry{} toDrop := map[manifest.ID]struct{}{} for _, man := range manifests { @@ -300,17 +301,20 @@ func findNonUniqueManifests( return toDrop } -func getBackupByID(backups []BackupEntry, bID string) (BackupEntry, bool) { +func getBackupByID( + backups []backup.BackupEntry, + bID string, +) (backup.BackupEntry, bool) { if len(bID) == 0 { - return BackupEntry{}, false + return backup.BackupEntry{}, false } - idx := slices.IndexFunc(backups, func(b BackupEntry) bool { + idx := slices.IndexFunc(backups, func(b backup.BackupEntry) bool { return string(b.ID) == bID }) if idx < 0 || idx >= len(backups) { - return BackupEntry{}, false + return backup.BackupEntry{}, false } return backups[idx], true @@ -333,10 +337,10 @@ func (bb *backupBases) fixupAndVerify(ctx context.Context) { toDrop := findNonUniqueManifests(ctx, bb.mergeBases) var ( - backupsToKeep []BackupEntry - assistBackupsToKeep []BackupEntry - mergeToKeep []ManifestEntry - assistToKeep []ManifestEntry + backupsToKeep []backup.BackupEntry + assistBackupsToKeep []backup.BackupEntry + mergeToKeep []backup.ManifestEntry + assistToKeep []backup.ManifestEntry ) for _, man := range bb.mergeBases { diff --git a/src/internal/kopia/backup_bases_test.go b/src/internal/kopia/backup_bases_test.go index 3ff1488e5..6752ea8ae 100644 --- a/src/internal/kopia/backup_bases_test.go +++ b/src/internal/kopia/backup_bases_test.go @@ -18,10 +18,15 @@ import ( "github.com/alcionai/corso/src/pkg/path" ) -func makeManifest(id, incmpl, bID string, reasons ...identity.Reasoner) ManifestEntry { - bIDKey, _ := makeTagKV(TagBackupID) +func makeManifest( + id, + incmpl, + bID string, + reasons ...identity.Reasoner, +) backup.ManifestEntry { + bIDKey, _ := backup.MakeTagKV(TagBackupID) - return ManifestEntry{ + return backup.ManifestEntry{ Manifest: &snapshot.Manifest{ ID: manifest.ID(id), IncompleteReason: incmpl, @@ -57,7 +62,7 @@ func (suite *BackupBasesUnitSuite) TestMinBackupVersion() { { name: "Unsorted Backups", bb: &backupBases{ - backups: []BackupEntry{ + backups: []backup.BackupEntry{ { Backup: &backup.Backup{ Version: 4, @@ -86,13 +91,13 @@ func (suite *BackupBasesUnitSuite) TestMinBackupVersion() { } func (suite *BackupBasesUnitSuite) TestConvertToAssistBase() { - backups := []BackupEntry{ + backups := []backup.BackupEntry{ {Backup: &backup.Backup{SnapshotID: "1"}}, {Backup: &backup.Backup{SnapshotID: "2"}}, {Backup: &backup.Backup{SnapshotID: "3"}}, } - merges := []ManifestEntry{ + merges := []backup.ManifestEntry{ makeManifest("1", "", ""), makeManifest("2", "", ""), makeManifest("3", "", ""), @@ -185,8 +190,8 @@ func (suite *BackupBasesUnitSuite) TestConvertToAssistBase() { } expected := &backupBases{ - backups: []BackupEntry{backups[0], backups[1]}, - mergeBases: []ManifestEntry{merges[0], merges[1]}, + backups: []backup.BackupEntry{backups[0], backups[1]}, + mergeBases: []backup.ManifestEntry{merges[0], merges[1]}, } for _, i := range test.expectAssist { @@ -203,20 +208,20 @@ func (suite *BackupBasesUnitSuite) TestConvertToAssistBase() { func (suite *BackupBasesUnitSuite) TestDisableMergeBases() { t := suite.T() - merge := []BackupEntry{ + merge := []backup.BackupEntry{ {Backup: &backup.Backup{BaseModel: model.BaseModel{ID: "m1"}}}, {Backup: &backup.Backup{BaseModel: model.BaseModel{ID: "m2"}}}, } - assist := []BackupEntry{ + assist := []backup.BackupEntry{ {Backup: &backup.Backup{BaseModel: model.BaseModel{ID: "a1"}}}, {Backup: &backup.Backup{BaseModel: model.BaseModel{ID: "a2"}}}, } bb := &backupBases{ backups: slices.Clone(merge), - mergeBases: make([]ManifestEntry, 2), + mergeBases: make([]backup.ManifestEntry, 2), assistBackups: slices.Clone(assist), - assistBases: make([]ManifestEntry, 2), + assistBases: make([]backup.ManifestEntry, 2), } bb.DisableMergeBases() @@ -237,10 +242,10 @@ func (suite *BackupBasesUnitSuite) TestDisableMergeBases() { func (suite *BackupBasesUnitSuite) TestDisableAssistBases() { t := suite.T() bb := &backupBases{ - backups: make([]BackupEntry, 2), - mergeBases: make([]ManifestEntry, 2), - assistBases: make([]ManifestEntry, 2), - assistBackups: make([]BackupEntry, 2), + backups: make([]backup.BackupEntry, 2), + mergeBases: make([]backup.ManifestEntry, 2), + assistBases: make([]backup.ManifestEntry, 2), + assistBackups: make([]backup.BackupEntry, 2), } bb.DisableAssistBases() @@ -275,7 +280,7 @@ func (suite *BackupBasesUnitSuite) TestMergeBackupBases() { m := makeManifest(baseID, "", "b"+baseID, reasons...) - b := BackupEntry{ + b := backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ID: model.StableID("b" + baseID)}, SnapshotID: baseID, @@ -299,7 +304,7 @@ func (suite *BackupBasesUnitSuite) TestMergeBackupBases() { m := makeManifest(baseID, "", "a"+baseID, reasons...) - b := BackupEntry{ + b := backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: model.StableID("a" + baseID), @@ -528,7 +533,11 @@ func (suite *BackupBasesUnitSuite) TestMergeBackupBases() { func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { ro := "resource_owner" - makeMan := func(pct path.CategoryType, id, incmpl, bID string) ManifestEntry { + makeMan := func( + pct path.CategoryType, + id, incmpl, + bID string, + ) backup.ManifestEntry { r := NewReason("", ro, path.ExchangeService, pct) return makeManifest(id, incmpl, bID, r) } @@ -536,7 +545,7 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { // Make a function so tests can modify things without messing with each other. validMail1 := func() *backupBases { return &backupBases{ - backups: []BackupEntry{ + backups: []backup.BackupEntry{ { Backup: &backup.Backup{ BaseModel: model.BaseModel{ @@ -547,10 +556,10 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { }, }, }, - mergeBases: []ManifestEntry{ + mergeBases: []backup.ManifestEntry{ makeMan(path.EmailCategory, "id1", "", "bid1"), }, - assistBackups: []BackupEntry{ + assistBackups: []backup.BackupEntry{ { Backup: &backup.Backup{ BaseModel: model.BaseModel{ @@ -562,7 +571,7 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { }, }, }, - assistBases: []ManifestEntry{ + assistBases: []backup.ManifestEntry{ makeMan(path.EmailCategory, "id2", "", "bid2"), }, } @@ -571,7 +580,7 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { table := []struct { name string bb *backupBases - expect BackupBases + expect backup.BackupBases }{ { name: "empty BaseBackups", @@ -769,14 +778,14 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { res := validMail1() res.backups = append( res.backups, - BackupEntry{ + backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: "bid3", }, }, }, - BackupEntry{ + backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: "bid4", @@ -796,7 +805,7 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { res := validMail1() res.backups = append( res.backups, - BackupEntry{ + backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: "bid4", @@ -818,7 +827,7 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { res := validMail1() res.assistBackups = append( res.assistBackups, - BackupEntry{ + backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: "bid3", @@ -826,7 +835,7 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { }, }, }, - BackupEntry{ + backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: "bid4", @@ -847,7 +856,7 @@ func (suite *BackupBasesUnitSuite) TestFixupAndVerify() { res := validMail1() res.assistBackups = append( res.assistBackups, - BackupEntry{ + backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: "bid4", diff --git a/src/internal/kopia/base_finder.go b/src/internal/kopia/base_finder.go index a77a350ed..07b65707e 100644 --- a/src/internal/kopia/base_finder.go +++ b/src/internal/kopia/base_finder.go @@ -86,7 +86,7 @@ func normalizeTagKVs(tags map[string]string) map[string]string { t2 := make(map[string]string, len(tags)) for k, v := range tags { - mk, mv := makeTagKV(k) + mk, mv := backup.MakeTagKV(k) if len(v) == 0 { v = mv @@ -125,7 +125,7 @@ func (b *baseFinder) getBackupModel( ctx context.Context, man *snapshot.Manifest, ) (*backup.Backup, error) { - k, _ := makeTagKV(TagBackupID) + k, _ := backup.MakeTagKV(TagBackupID) bID := man.Tags[k] ctx = clues.Add(ctx, "search_backup_id", bID) @@ -333,7 +333,7 @@ func (b *baseFinder) FindBases( ctx context.Context, reasons []identity.Reasoner, tags map[string]string, -) BackupBases { +) backup.BackupBases { var ( // Backup models and item data snapshot manifests are 1:1 for bases so just // track things by the backup ID. We need to track by ID so we can coalesce @@ -384,16 +384,16 @@ func (b *baseFinder) FindBases( // Convert what we got to the format that backupBases takes right now. // TODO(ashmrtn): Remove when backupBases has consolidated fields. res := &backupBases{} - bups := make([]BackupEntry, 0, len(mergeBases)) - snaps := make([]ManifestEntry, 0, len(mergeBases)) + bups := make([]backup.BackupEntry, 0, len(mergeBases)) + snaps := make([]backup.ManifestEntry, 0, len(mergeBases)) for _, base := range mergeBases { - bups = append(bups, BackupEntry{ + bups = append(bups, backup.BackupEntry{ Backup: base.Backup, Reasons: base.Reasons, }) - snaps = append(snaps, ManifestEntry{ + snaps = append(snaps, backup.ManifestEntry{ Manifest: base.ItemDataSnapshot, Reasons: base.Reasons, }) @@ -402,16 +402,16 @@ func (b *baseFinder) FindBases( res.backups = bups res.mergeBases = snaps - bups = make([]BackupEntry, 0, len(assistBases)) - snaps = make([]ManifestEntry, 0, len(assistBases)) + bups = make([]backup.BackupEntry, 0, len(assistBases)) + snaps = make([]backup.ManifestEntry, 0, len(assistBases)) for _, base := range assistBases { - bups = append(bups, BackupEntry{ + bups = append(bups, backup.BackupEntry{ Backup: base.Backup, Reasons: base.Reasons, }) - snaps = append(snaps, ManifestEntry{ + snaps = append(snaps, backup.ManifestEntry{ Manifest: base.ItemDataSnapshot, Reasons: base.Reasons, }) diff --git a/src/internal/kopia/base_finder_test.go b/src/internal/kopia/base_finder_test.go index 2c65890a1..aa4686290 100644 --- a/src/internal/kopia/base_finder_test.go +++ b/src/internal/kopia/base_finder_test.go @@ -121,7 +121,7 @@ func newManifestInfo( structTags := make(map[string]string, len(tags)) for _, t := range tags { - tk, _ := makeTagKV(t) + tk, _ := backup.MakeTagKV(t) structTags[tk] = "" } @@ -141,7 +141,7 @@ func newManifestInfo( } if len(backupID) > 0 { - k, _ := makeTagKV(TagBackupID) + k, _ := backup.MakeTagKV(TagBackupID) res.metadata.Labels[k] = backupID res.man.Tags[k] = backupID } @@ -1078,7 +1078,7 @@ func (suite *BaseFinderUnitSuite) TestFindBases_CustomTags() { func checkManifestEntriesMatch( t *testing.T, - retSnaps []ManifestEntry, + retSnaps []backup.ManifestEntry, allExpected []manifestInfo, expectedIdxsAndReasons map[int][]identity.Reasoner, ) { @@ -1119,7 +1119,7 @@ func checkManifestEntriesMatch( func checkBackupEntriesMatch( t *testing.T, - retBups []BackupEntry, + retBups []backup.BackupEntry, allExpected []backupInfo, expectedIdxsAndReasons map[int][]identity.Reasoner, ) { diff --git a/src/internal/kopia/cleanup_backups.go b/src/internal/kopia/cleanup_backups.go index af3be7d2f..f46f4c453 100644 --- a/src/internal/kopia/cleanup_backups.go +++ b/src/internal/kopia/cleanup_backups.go @@ -99,7 +99,7 @@ func cleanupOrphanedData( toDelete[snap.ID] = struct{}{} - k, _ := makeTagKV(TagBackupCategory) + k, _ := backup.MakeTagKV(TagBackupCategory) if _, ok := snap.Labels[k]; ok { dataSnaps[snap.ID] = snap continue @@ -315,7 +315,7 @@ func transferTags(snap *manifest.EntryMetadata, bup *backup.Backup) error { skipTags := map[string]struct{}{} for _, k := range skipKeys { - key, _ := makeTagKV(k) + key, _ := backup.MakeTagKV(k) skipTags[key] = struct{}{} } @@ -324,7 +324,7 @@ func transferTags(snap *manifest.EntryMetadata, bup *backup.Backup) error { // backups. roid := bup.ProtectedResourceID - roidK, _ := makeTagKV(roid) + roidK, _ := backup.MakeTagKV(roid) skipTags[roidK] = struct{}{} // This is hacky, but right now we don't have a good way to get only the @@ -336,11 +336,11 @@ func transferTags(snap *manifest.EntryMetadata, bup *backup.Backup) error { // Convert them to the newer format that we'd like to have where the // service/category tags have the form "sc-". for tag := range snap.Labels { - if _, ok := skipTags[tag]; ok || !strings.HasPrefix(tag, userTagPrefix) { + if _, ok := skipTags[tag]; ok || !strings.HasPrefix(tag, backup.LegacyUserTagPrefix) { continue } - bup.Tags[strings.Replace(tag, userTagPrefix, serviceCatTagPrefix, 1)] = "0" + bup.Tags[strings.Replace(tag, backup.LegacyUserTagPrefix, serviceCatTagPrefix, 1)] = "0" } return nil diff --git a/src/internal/kopia/cleanup_backups_test.go b/src/internal/kopia/cleanup_backups_test.go index 6407485a5..70a78b24a 100644 --- a/src/internal/kopia/cleanup_backups_test.go +++ b/src/internal/kopia/cleanup_backups_test.go @@ -136,7 +136,7 @@ type backupRes struct { } func (suite *BackupCleanupUnitSuite) TestCleanupOrphanedData() { - backupTag, _ := makeTagKV(TagBackupCategory) + backupTag, _ := backup.MakeTagKV(TagBackupCategory) // Current backup and snapshots. bupCurrent := func() *backup.Backup { @@ -331,13 +331,13 @@ func (suite *BackupCleanupUnitSuite) TestCleanupOrphanedData() { // Add the given reasons. for _, r := range reasons { for _, k := range tagKeys(r) { - key, _ := makeTagKV(k) + key, _ := backup.MakeTagKV(k) res.Labels[key] = "0" } } // Also add other common reasons on item data snapshots. - k, _ := makeTagKV(TagBackupCategory) + k, _ := backup.MakeTagKV(TagBackupCategory) res.Labels[k] = "0" return &res diff --git a/src/internal/kopia/inject/inject.go b/src/internal/kopia/inject/inject.go index 3011a79e7..c5e2fee99 100644 --- a/src/internal/kopia/inject/inject.go +++ b/src/internal/kopia/inject/inject.go @@ -6,6 +6,7 @@ import ( "github.com/alcionai/corso/src/internal/common/prefixmatcher" "github.com/alcionai/corso/src/internal/data" "github.com/alcionai/corso/src/internal/kopia" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/backup/identity" "github.com/alcionai/corso/src/pkg/fault" @@ -17,7 +18,7 @@ type ( ConsumeBackupCollections( ctx context.Context, backupReasons []identity.Reasoner, - bases kopia.BackupBases, + bases backup.BackupBases, cs []data.BackupCollection, pmr prefixmatcher.StringSetReader, tags map[string]string, @@ -41,6 +42,6 @@ type ( ctx context.Context, reasons []identity.Reasoner, tags map[string]string, - ) kopia.BackupBases + ) backup.BackupBases } ) diff --git a/src/internal/kopia/mock_backup_base.go b/src/internal/kopia/mock_backup_base.go index cca5580a0..1306a1865 100644 --- a/src/internal/kopia/mock_backup_base.go +++ b/src/internal/kopia/mock_backup_base.go @@ -4,9 +4,13 @@ import ( "testing" "github.com/stretchr/testify/assert" + + "github.com/alcionai/corso/src/pkg/backup" ) -func AssertBackupBasesEqual(t *testing.T, expect, got BackupBases) { +var _ backup.BackupBases = &MockBackupBases{} + +func AssertBackupBasesEqual(t *testing.T, expect, got backup.BackupBases) { if expect == nil && got == nil { return } @@ -48,22 +52,22 @@ type MockBackupBases struct { *backupBases } -func (bb *MockBackupBases) WithBackups(b ...BackupEntry) *MockBackupBases { +func (bb *MockBackupBases) WithBackups(b ...backup.BackupEntry) *MockBackupBases { bb.backupBases.backups = append(bb.Backups(), b...) return bb } -func (bb *MockBackupBases) WithMergeBases(m ...ManifestEntry) *MockBackupBases { +func (bb *MockBackupBases) WithMergeBases(m ...backup.ManifestEntry) *MockBackupBases { bb.backupBases.mergeBases = append(bb.MergeBases(), m...) return bb } -func (bb *MockBackupBases) WithAssistBackups(b ...BackupEntry) *MockBackupBases { +func (bb *MockBackupBases) WithAssistBackups(b ...backup.BackupEntry) *MockBackupBases { bb.backupBases.assistBackups = append(bb.UniqueAssistBackups(), b...) return bb } -func (bb *MockBackupBases) WithAssistBases(m ...ManifestEntry) *MockBackupBases { +func (bb *MockBackupBases) WithAssistBases(m ...backup.ManifestEntry) *MockBackupBases { bb.backupBases.assistBases = append(bb.UniqueAssistBases(), m...) return bb } diff --git a/src/internal/kopia/upload.go b/src/internal/kopia/upload.go index 6030ec838..e76dffd60 100644 --- a/src/internal/kopia/upload.go +++ b/src/internal/kopia/upload.go @@ -23,6 +23,7 @@ import ( "github.com/alcionai/corso/src/internal/diagnostics" "github.com/alcionai/corso/src/internal/m365/graph" "github.com/alcionai/corso/src/internal/m365/graph/metadata" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/count" "github.com/alcionai/corso/src/pkg/fault" @@ -1039,7 +1040,7 @@ func traverseBaseDir( return nil } -func logBaseInfo(ctx context.Context, m ManifestEntry) { +func logBaseInfo(ctx context.Context, m backup.ManifestEntry) { svcs := map[string]struct{}{} cats := map[string]struct{}{} @@ -1085,7 +1086,7 @@ const ( func inflateBaseTree( ctx context.Context, loader snapshotLoader, - snap ManifestEntry, + snap backup.ManifestEntry, updatedPaths map[string]path.Path, roots map[string]*treeMap, ) error { @@ -1196,7 +1197,7 @@ func inflateBaseTree( func inflateDirTree( ctx context.Context, loader snapshotLoader, - baseSnaps []ManifestEntry, + baseSnaps []backup.ManifestEntry, collections []data.BackupCollection, globalExcludeSet prefixmatcher.StringSetReader, progress *corsoProgress, diff --git a/src/internal/kopia/upload_test.go b/src/internal/kopia/upload_test.go index 168d32617..e2de6a481 100644 --- a/src/internal/kopia/upload_test.go +++ b/src/internal/kopia/upload_test.go @@ -22,6 +22,7 @@ import ( "github.com/alcionai/corso/src/internal/data" exchMock "github.com/alcionai/corso/src/internal/m365/service/exchange/mock" "github.com/alcionai/corso/src/internal/tester" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/backup/identity" "github.com/alcionai/corso/src/pkg/fault" @@ -879,14 +880,14 @@ func makeManifestEntry( id, tenant, resourceOwner string, service path.ServiceType, categories ...path.CategoryType, -) ManifestEntry { +) backup.ManifestEntry { var reasons []identity.Reasoner for _, c := range categories { reasons = append(reasons, NewReason(tenant, resourceOwner, service, c)) } - return ManifestEntry{ + return backup.ManifestEntry{ Manifest: &snapshot.Manifest{ ID: manifest.ID(id), }, @@ -1198,7 +1199,7 @@ func (suite *HierarchyBuilderUnitSuite) TestBuildDirectoryTreeSingleSubtree() { dirTree, err := inflateDirTree( ctx, msw, - []ManifestEntry{ + []backup.ManifestEntry{ makeManifestEntry("", testTenant, testUser, path.ExchangeService, path.EmailCategory), }, test.inputCollections(), @@ -1913,7 +1914,7 @@ func (suite *HierarchyBuilderUnitSuite) TestBuildDirectoryTreeMultipleSubdirecto dirTree, err := inflateDirTree( ctx, msw, - []ManifestEntry{ + []backup.ManifestEntry{ makeManifestEntry("", testTenant, testUser, path.ExchangeService, path.EmailCategory), }, test.inputCollections(t), @@ -2057,7 +2058,7 @@ func (suite *HierarchyBuilderUnitSuite) TestBuildDirectoryTreeSkipsDeletedSubtre dirTree, err := inflateDirTree( ctx, msw, - []ManifestEntry{ + []backup.ManifestEntry{ makeManifestEntry("", testTenant, testUser, path.ExchangeService, path.EmailCategory), }, collections, @@ -2157,7 +2158,7 @@ func (suite *HierarchyBuilderUnitSuite) TestBuildDirectoryTree_HandleEmptyBase() dirTree, err := inflateDirTree( ctx, msw, - []ManifestEntry{ + []backup.ManifestEntry{ makeManifestEntry("", testTenant, testUser, path.ExchangeService, path.EmailCategory), }, collections, @@ -2373,7 +2374,7 @@ func (suite *HierarchyBuilderUnitSuite) TestBuildDirectoryTreeSelectsCorrectSubt dirTree, err := inflateDirTree( ctx, msw, - []ManifestEntry{ + []backup.ManifestEntry{ makeManifestEntry("id1", testTenant, testUser, path.ExchangeService, path.ContactsCategory), makeManifestEntry("id2", testTenant, testUser, path.ExchangeService, path.EmailCategory), }, @@ -2526,7 +2527,7 @@ func (suite *HierarchyBuilderUnitSuite) TestBuildDirectoryTreeSelectsMigrateSubt dirTree, err := inflateDirTree( ctx, msw, - []ManifestEntry{ + []backup.ManifestEntry{ makeManifestEntry("id1", testTenant, testUser, path.ExchangeService, path.EmailCategory, path.ContactsCategory), }, []data.BackupCollection{mce, mcc}, @@ -3451,7 +3452,7 @@ func (suite *HierarchyBuilderUnitSuite) TestBuildDirectoryTree_SelectiveSubtreeP dirTree, err := inflateDirTree( ctx, msw, - []ManifestEntry{ + []backup.ManifestEntry{ makeManifestEntry("", tenant, user, path.OneDriveService, path.FilesCategory), }, test.inputCollections(t), diff --git a/src/internal/kopia/wrapper.go b/src/internal/kopia/wrapper.go index 10523de6c..ddb6acacf 100644 --- a/src/internal/kopia/wrapper.go +++ b/src/internal/kopia/wrapper.go @@ -23,6 +23,7 @@ import ( "github.com/alcionai/corso/src/internal/diagnostics" "github.com/alcionai/corso/src/internal/observe" "github.com/alcionai/corso/src/internal/stats" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/backup/identity" "github.com/alcionai/corso/src/pkg/control/repository" @@ -139,7 +140,7 @@ func (w *Wrapper) Close(ctx context.Context) error { func (w Wrapper) ConsumeBackupCollections( ctx context.Context, backupReasons []identity.Reasoner, - bases BackupBases, + bases backup.BackupBases, collections []data.BackupCollection, globalExcludeSet prefixmatcher.StringSetReader, additionalTags map[string]string, @@ -169,8 +170,8 @@ func (w Wrapper) ConsumeBackupCollections( // snapshot bases into inflateDirTree so that the new snapshot // includes historical data. var ( - mergeBase []ManifestEntry - assistBase []ManifestEntry + mergeBase []backup.ManifestEntry + assistBase []backup.ManifestEntry ) if bases != nil { @@ -220,7 +221,7 @@ func (w Wrapper) ConsumeBackupCollections( func (w Wrapper) makeSnapshotWithRoot( ctx context.Context, - prevSnapEntries []ManifestEntry, + prevSnapEntries []backup.ManifestEntry, root fs.Directory, addlTags map[string]string, progress *corsoProgress, @@ -253,7 +254,7 @@ func (w Wrapper) makeSnapshotWithRoot( tags := map[string]string{} for k, v := range addlTags { - mk, mv := makeTagKV(k) + mk, mv := backup.MakeTagKV(k) if len(v) == 0 { v = mv diff --git a/src/internal/kopia/wrapper_test.go b/src/internal/kopia/wrapper_test.go index 7b4508465..01915dde2 100644 --- a/src/internal/kopia/wrapper_test.go +++ b/src/internal/kopia/wrapper_test.go @@ -28,6 +28,7 @@ import ( "github.com/alcionai/corso/src/internal/m365/collection/drive/metadata" exchMock "github.com/alcionai/corso/src/internal/m365/service/exchange/mock" "github.com/alcionai/corso/src/internal/tester" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/backup/identity" "github.com/alcionai/corso/src/pkg/control/repository" @@ -837,7 +838,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { type testCase struct { name string - baseBackups func(base ManifestEntry) BackupBases + baseBackups func(base backup.ManifestEntry) backup.BackupBases collections []data.BackupCollection expectedUploadedFiles int expectedCachedFiles int @@ -862,7 +863,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { // Initial backup. All files should be considered new by kopia. baseBackupCase := testCase{ name: "Uncached", - baseBackups: func(ManifestEntry) BackupBases { + baseBackups: func(backup.ManifestEntry) backup.BackupBases { return NewMockBackupBases() }, collections: collections, @@ -873,8 +874,8 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { uploadedBytes: []int64{8000, 10000}, } - runAndTestBackup := func(test testCase, base ManifestEntry) ManifestEntry { - var res ManifestEntry + runAndTestBackup := func(test testCase, base backup.ManifestEntry) backup.ManifestEntry { + var res backup.ManifestEntry suite.Run(test.name, func() { t := suite.T() @@ -945,7 +946,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { manifest.ID(stats.SnapshotID)) require.NoError(t, err, clues.ToCore(err)) - res = ManifestEntry{ + res = backup.ManifestEntry{ Manifest: snap, Reasons: reasons, } @@ -954,12 +955,12 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { return res } - base := runAndTestBackup(baseBackupCase, ManifestEntry{}) + base := runAndTestBackup(baseBackupCase, backup.ManifestEntry{}) table := []testCase{ { name: "Kopia Assist And Merge All Files Changed", - baseBackups: func(base ManifestEntry) BackupBases { + baseBackups: func(base backup.ManifestEntry) backup.BackupBases { return NewMockBackupBases().WithMergeBases(base) }, collections: collections, @@ -973,7 +974,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { }, { name: "Kopia Assist And Merge No Files Changed", - baseBackups: func(base ManifestEntry) BackupBases { + baseBackups: func(base backup.ManifestEntry) backup.BackupBases { return NewMockBackupBases().WithMergeBases(base) }, // Pass in empty collections to force a backup. Otherwise we'll skip @@ -995,7 +996,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { }, { name: "Kopia Assist Only", - baseBackups: func(base ManifestEntry) BackupBases { + baseBackups: func(base backup.ManifestEntry) backup.BackupBases { return NewMockBackupBases().WithAssistBases(base) }, collections: collections, @@ -1008,7 +1009,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { }, { name: "Merge Only", - baseBackups: func(base ManifestEntry) BackupBases { + baseBackups: func(base backup.ManifestEntry) backup.BackupBases { return NewMockBackupBases().WithMergeBases(base).MockDisableAssistBases() }, // Pass in empty collections to force a backup. Otherwise we'll skip @@ -1028,7 +1029,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections() { }, { name: "Content Hash Only", - baseBackups: func(base ManifestEntry) BackupBases { + baseBackups: func(base backup.ManifestEntry) backup.BackupBases { return NewMockBackupBases() }, collections: collections, @@ -1231,7 +1232,7 @@ func (suite *KopiaIntegrationSuite) TestBackupCollections_NoDetailsForMeta() { require.NoError(t, err, clues.ToCore(err)) prevSnaps.WithMergeBases( - ManifestEntry{ + backup.ManifestEntry{ Manifest: snap, Reasons: reasons, }) @@ -1719,7 +1720,7 @@ func (suite *KopiaSimpleRepoIntegrationSuite) TestBackupExcludeItem() { suite.ctx, []identity.Reasoner{r}, NewMockBackupBases().WithMergeBases( - ManifestEntry{ + backup.ManifestEntry{ Manifest: man, Reasons: []identity.Reasoner{r}, }), diff --git a/src/internal/m365/backup.go b/src/internal/m365/backup.go index 7b54c36cb..2c5a64c96 100644 --- a/src/internal/m365/backup.go +++ b/src/internal/m365/backup.go @@ -8,7 +8,6 @@ import ( "github.com/alcionai/corso/src/internal/common/prefixmatcher" "github.com/alcionai/corso/src/internal/data" "github.com/alcionai/corso/src/internal/diagnostics" - "github.com/alcionai/corso/src/internal/kopia" kinject "github.com/alcionai/corso/src/internal/kopia/inject" "github.com/alcionai/corso/src/internal/m365/graph" "github.com/alcionai/corso/src/internal/m365/service/exchange" @@ -16,6 +15,7 @@ import ( "github.com/alcionai/corso/src/internal/m365/service/onedrive" "github.com/alcionai/corso/src/internal/m365/service/sharepoint" "github.com/alcionai/corso/src/internal/operations/inject" + "github.com/alcionai/corso/src/pkg/backup" bupMD "github.com/alcionai/corso/src/pkg/backup/metadata" "github.com/alcionai/corso/src/pkg/fault" "github.com/alcionai/corso/src/pkg/filters" @@ -176,7 +176,7 @@ func verifyBackupInputs(sels selectors.Selector, cachedIDs []string) error { func (ctrl *Controller) GetMetadataPaths( ctx context.Context, r kinject.RestoreProducer, - man kopia.ManifestEntry, + man backup.ManifestEntry, errs *fault.Bus, ) ([]path.RestorePaths, error) { var ( diff --git a/src/internal/m365/mock/connector.go b/src/internal/m365/mock/connector.go index 20d17eed1..3e25de00e 100644 --- a/src/internal/m365/mock/connector.go +++ b/src/internal/m365/mock/connector.go @@ -8,9 +8,9 @@ import ( "github.com/alcionai/corso/src/internal/common/idname" "github.com/alcionai/corso/src/internal/common/prefixmatcher" "github.com/alcionai/corso/src/internal/data" - "github.com/alcionai/corso/src/internal/kopia" kinject "github.com/alcionai/corso/src/internal/kopia/inject" "github.com/alcionai/corso/src/internal/operations/inject" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/control" "github.com/alcionai/corso/src/pkg/count" @@ -53,7 +53,7 @@ func (ctrl Controller) ProduceBackupCollections( func (ctrl *Controller) GetMetadataPaths( ctx context.Context, r kinject.RestoreProducer, - man kopia.ManifestEntry, + man backup.ManifestEntry, errs *fault.Bus, ) ([]path.RestorePaths, error) { return nil, clues.New("not implemented") diff --git a/src/internal/operations/backup.go b/src/internal/operations/backup.go index 80b74277e..00bd3e557 100644 --- a/src/internal/operations/backup.go +++ b/src/internal/operations/backup.go @@ -494,7 +494,7 @@ func consumeBackupCollections( bc kinject.BackupConsumer, tenantID string, reasons []identity.Reasoner, - bbs kopia.BackupBases, + bbs backup.BackupBases, cs []data.BackupCollection, pmr prefixmatcher.StringSetReader, backupID model.StableID, @@ -598,7 +598,7 @@ func getNewPathRefs( func mergeItemsFromBase( ctx context.Context, checkReason bool, - baseBackup kopia.BackupEntry, + baseBackup backup.BackupEntry, detailsStore streamstore.Streamer, dataFromBackup kopia.DetailsMergeInfoer, deets *details.Builder, @@ -702,7 +702,7 @@ func mergeItemsFromBase( func mergeDetails( ctx context.Context, detailsStore streamstore.Streamer, - bases kopia.BackupBases, + bases backup.BackupBases, dataFromBackup kopia.DetailsMergeInfoer, deets *details.Builder, writeStats *kopia.BackupStats, @@ -843,6 +843,7 @@ func (op *BackupOperation) persistResults( func (op *BackupOperation) createBackupModels( ctx context.Context, sscw streamstore.CollectorWriter, + bases backup.BackupBases, opStats backupStats, backupID model.StableID, backupVersion int, diff --git a/src/internal/operations/backup_test.go b/src/internal/operations/backup_test.go index a06e3c3bf..0b77b3a1f 100644 --- a/src/internal/operations/backup_test.go +++ b/src/internal/operations/backup_test.go @@ -121,7 +121,7 @@ func checkPaths(t *testing.T, expected, got []path.Path) { type mockBackupConsumer struct { checkFunc func( backupReasons []identity.Reasoner, - bases kopia.BackupBases, + bases backup.BackupBases, cs []data.BackupCollection, tags map[string]string, buildTreeWithBase bool) @@ -130,7 +130,7 @@ type mockBackupConsumer struct { func (mbu mockBackupConsumer) ConsumeBackupCollections( ctx context.Context, backupReasons []identity.Reasoner, - bases kopia.BackupBases, + bases backup.BackupBases, cs []data.BackupCollection, excluded prefixmatcher.StringSetReader, tags map[string]string, @@ -477,13 +477,13 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_ConsumeBackupDataCollections } bases = kopia.NewMockBackupBases().WithMergeBases( - kopia.ManifestEntry{ + backup.ManifestEntry{ Manifest: manifest1, Reasons: []identity.Reasoner{ emailReason, }, }).WithAssistBases( - kopia.ManifestEntry{ + backup.ManifestEntry{ Manifest: manifest2, Reasons: []identity.Reasoner{ contactsReason, @@ -500,7 +500,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_ConsumeBackupDataCollections mbu := &mockBackupConsumer{ checkFunc: func( backupReasons []identity.Reasoner, - gotBases kopia.BackupBases, + gotBases backup.BackupBases, cs []data.BackupCollection, gotTags map[string]string, buildTreeWithBase bool, @@ -631,8 +631,8 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems table := []struct { name string populatedDetails map[string]*details.Details - inputBackups []kopia.BackupEntry - inputAssistBackups []kopia.BackupEntry + inputBackups []backup.BackupEntry + inputAssistBackups []backup.BackupEntry mdm *mockDetailsMergeInfoer errCheck assert.ErrorAssertionFunc @@ -659,7 +659,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup.Backup{ BaseModel: model.BaseModel{ @@ -683,7 +683,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -710,7 +710,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -766,7 +766,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -793,7 +793,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -823,7 +823,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -853,7 +853,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -883,7 +883,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -914,7 +914,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -945,7 +945,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -993,7 +993,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -1002,7 +1002,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems }, }, }, - inputAssistBackups: []kopia.BackupEntry{ + inputAssistBackups: []backup.BackupEntry{ {Backup: &backup2}, }, populatedDetails: map[string]*details.Details{ @@ -1037,7 +1037,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputBackups: []kopia.BackupEntry{ + inputBackups: []backup.BackupEntry{ { Backup: &backup1, Reasons: []identity.Reasoner{ @@ -1045,7 +1045,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems }, }, }, - inputAssistBackups: []kopia.BackupEntry{ + inputAssistBackups: []backup.BackupEntry{ {Backup: &backup2}, }, populatedDetails: map[string]*details.Details{ @@ -1077,7 +1077,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputAssistBackups: []kopia.BackupEntry{ + inputAssistBackups: []backup.BackupEntry{ {Backup: &backup1}, {Backup: &backup2}, }, @@ -1110,7 +1110,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputAssistBackups: []kopia.BackupEntry{ + inputAssistBackups: []backup.BackupEntry{ {Backup: &backup1}, {Backup: &backup2}, }, @@ -1143,7 +1143,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems return res }(), - inputAssistBackups: []kopia.BackupEntry{ + inputAssistBackups: []backup.BackupEntry{ {Backup: &backup1}, {Backup: &backup2}, }, @@ -1173,7 +1173,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsItems mdm: func() *mockDetailsMergeInfoer { return newMockDetailsMergeInfoer() }(), - inputAssistBackups: []kopia.BackupEntry{ + inputAssistBackups: []backup.BackupEntry{ {Backup: &backup1}, }, populatedDetails: map[string]*details.Details{ @@ -1273,7 +1273,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_MergeBackupDetails_AddsFolde itemPath1.Service(), itemPath1.Category()) - backup1 = kopia.BackupEntry{ + backup1 = backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: "bid1", diff --git a/src/internal/operations/inject/inject.go b/src/internal/operations/inject/inject.go index e7b4ba228..5109d0349 100644 --- a/src/internal/operations/inject/inject.go +++ b/src/internal/operations/inject/inject.go @@ -6,8 +6,8 @@ import ( "github.com/alcionai/corso/src/internal/common/idname" "github.com/alcionai/corso/src/internal/common/prefixmatcher" "github.com/alcionai/corso/src/internal/data" - "github.com/alcionai/corso/src/internal/kopia" "github.com/alcionai/corso/src/internal/kopia/inject" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/control" "github.com/alcionai/corso/src/pkg/control/repository" @@ -37,7 +37,7 @@ type ( GetMetadataPaths( ctx context.Context, r inject.RestoreProducer, - man kopia.ManifestEntry, + man backup.ManifestEntry, errs *fault.Bus, ) ([]path.RestorePaths, error) diff --git a/src/internal/operations/inject/mock/inject.go b/src/internal/operations/inject/mock/inject.go index 408da22b9..46105e394 100644 --- a/src/internal/operations/inject/mock/inject.go +++ b/src/internal/operations/inject/mock/inject.go @@ -7,10 +7,10 @@ import ( "github.com/alcionai/corso/src/internal/common/prefixmatcher" "github.com/alcionai/corso/src/internal/data" - "github.com/alcionai/corso/src/internal/kopia" kinject "github.com/alcionai/corso/src/internal/kopia/inject" "github.com/alcionai/corso/src/internal/m365" "github.com/alcionai/corso/src/internal/operations/inject" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/fault" "github.com/alcionai/corso/src/pkg/path" ) @@ -62,7 +62,7 @@ func (mbp *mockBackupProducer) Wait() *data.CollectionStats { func (mbp mockBackupProducer) GetMetadataPaths( ctx context.Context, r kinject.RestoreProducer, - man kopia.ManifestEntry, + man backup.ManifestEntry, errs *fault.Bus, ) ([]path.RestorePaths, error) { ctrl := m365.Controller{} diff --git a/src/internal/operations/manifests.go b/src/internal/operations/manifests.go index 9777bb5fd..4b6e6fe4e 100644 --- a/src/internal/operations/manifests.go +++ b/src/internal/operations/manifests.go @@ -10,6 +10,7 @@ import ( "github.com/alcionai/corso/src/internal/kopia" "github.com/alcionai/corso/src/internal/kopia/inject" oinject "github.com/alcionai/corso/src/internal/operations/inject" + "github.com/alcionai/corso/src/pkg/backup" "github.com/alcionai/corso/src/pkg/backup/identity" "github.com/alcionai/corso/src/pkg/fault" "github.com/alcionai/corso/src/pkg/logger" @@ -23,7 +24,7 @@ func produceManifestsAndMetadata( reasons, fallbackReasons []identity.Reasoner, tenantID string, getMetadata, dropAssistBases bool, -) (kopia.BackupBases, []data.RestoreCollection, bool, error) { +) (backup.BackupBases, []data.RestoreCollection, bool, error) { bb, meta, useMergeBases, err := getManifestsAndMetadata( ctx, bf, @@ -62,7 +63,7 @@ func getManifestsAndMetadata( reasons, fallbackReasons []identity.Reasoner, tenantID string, getMetadata bool, -) (kopia.BackupBases, []data.RestoreCollection, bool, error) { +) (backup.BackupBases, []data.RestoreCollection, bool, error) { var ( tags = map[string]string{kopia.TagBackupCategory: ""} collections []data.RestoreCollection diff --git a/src/internal/operations/manifests_test.go b/src/internal/operations/manifests_test.go index 8bf26c3ec..89b28f16f 100644 --- a/src/internal/operations/manifests_test.go +++ b/src/internal/operations/manifests_test.go @@ -50,14 +50,14 @@ type mockBackupFinder struct { // beyond that and results are returned for the union of the reasons anyway. // This does assume that the return data is properly constructed to return a // union of the reasons etc. - data map[string]kopia.BackupBases + data map[string]backup.BackupBases } func (bf *mockBackupFinder) FindBases( _ context.Context, reasons []identity.Reasoner, _ map[string]string, -) kopia.BackupBases { +) backup.BackupBases { if len(reasons) == 0 { return kopia.NewMockBackupBases() } @@ -290,7 +290,7 @@ func (suite *OperationsManifestsUnitSuite) TestGetMetadataPaths() { mr := mockRestoreProducer{err: test.expectErr, colls: test.preFetchCollection} mr.buildRestoreFunc(t, test.manID, paths) - man := kopia.ManifestEntry{ + man := backup.ManifestEntry{ Manifest: &snapshot.Manifest{ID: manifest.ID(test.manID)}, Reasons: test.reasons, } @@ -327,8 +327,8 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { did = "detailsid" ) - makeMan := func(id, incmpl string, cats ...path.CategoryType) kopia.ManifestEntry { - return kopia.ManifestEntry{ + makeMan := func(id, incmpl string, cats ...path.CategoryType) backup.ManifestEntry { + return backup.ManifestEntry{ Manifest: &snapshot.Manifest{ ID: manifest.ID(id), IncompleteReason: incmpl, @@ -337,8 +337,8 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { } } - makeBackup := func(snapID string, cats ...path.CategoryType) kopia.BackupEntry { - return kopia.BackupEntry{ + makeBackup := func(snapID string, cats ...path.CategoryType) backup.BackupEntry { + return backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: model.StableID(snapID + "bup"), @@ -361,7 +361,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { assertB assert.BoolAssertionFunc expectDCS []mockColl expectPaths func(t *testing.T, gotPaths []path.Path) - expectMans kopia.BackupBases + expectMans backup.BackupBases }{ { name: "don't get metadata, no mans", @@ -376,7 +376,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { { name: "don't get metadata", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases(). WithMergeBases(makeMan("id1", "", path.EmailCategory)). WithBackups(makeBackup("id1", path.EmailCategory)), @@ -398,7 +398,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { { name: "don't get metadata, incomplete manifest", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithAssistBases( makeMan("id1", "checkpoint", path.EmailCategory)), }, @@ -420,7 +420,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { { name: "one valid man, multiple reasons", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithMergeBases( makeMan("id1", "", path.EmailCategory, path.ContactsCategory)), }, @@ -462,7 +462,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { { name: "one valid man, extra incomplete man", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases(). WithMergeBases(makeMan("id1", "", path.EmailCategory)). WithAssistBases(makeMan("id2", "checkpoint", path.EmailCategory)), @@ -488,7 +488,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { { name: "one valid man, extra incomplete man, drop assist bases", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases(). WithMergeBases(makeMan("id1", "", path.EmailCategory)). WithAssistBases(makeMan("id2", "checkpoint", path.EmailCategory)), @@ -515,7 +515,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { { name: "multiple valid mans", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithMergeBases( makeMan("id1", "", path.EmailCategory), makeMan("id2", "", path.EmailCategory)), @@ -541,7 +541,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata() { { name: "error collecting metadata", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases(). WithMergeBases(makeMan("id1", "", path.EmailCategory)), }, @@ -628,8 +628,8 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb did = "detailsid" ) - makeMan := func(ro, id, incmpl string, cats ...path.CategoryType) kopia.ManifestEntry { - return kopia.ManifestEntry{ + makeMan := func(ro, id, incmpl string, cats ...path.CategoryType) backup.ManifestEntry { + return backup.ManifestEntry{ Manifest: &snapshot.Manifest{ ID: manifest.ID(id), IncompleteReason: incmpl, @@ -639,8 +639,8 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb } } - makeBackup := func(ro, snapID string, cats ...path.CategoryType) kopia.BackupEntry { - return kopia.BackupEntry{ + makeBackup := func(ro, snapID string, cats ...path.CategoryType) backup.BackupEntry { + return backup.BackupEntry{ Backup: &backup.Backup{ BaseModel: model.BaseModel{ ID: model.StableID(snapID + "bup"), @@ -675,12 +675,12 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb assertErr assert.ErrorAssertionFunc assertB assert.BoolAssertionFunc expectDCS []mockColl - expectMans kopia.BackupBases + expectMans backup.BackupBases }{ { name: "don't get metadata, only fallbacks", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ fbro: kopia.NewMockBackupBases(). WithMergeBases(makeMan(fbro, "fb_id1", "", path.EmailCategory)). WithBackups(makeBackup(fbro, "fb_id1", path.EmailCategory)), @@ -700,7 +700,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "only fallbacks", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ fbro: kopia.NewMockBackupBases().WithMergeBases( makeMan(fbro, "fb_id1", "", path.EmailCategory)).WithBackups( makeBackup(fbro, "fb_id1", path.EmailCategory)), @@ -723,7 +723,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "only fallbacks, drop assist", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ fbro: kopia.NewMockBackupBases(). WithMergeBases(makeMan(fbro, "fb_id1", "", path.EmailCategory)). WithBackups(makeBackup(fbro, "fb_id1", path.EmailCategory)), @@ -748,7 +748,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "complete mans and fallbacks", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases(). WithMergeBases(makeMan(ro, "id1", "", path.EmailCategory)), fbro: kopia.NewMockBackupBases(). @@ -774,7 +774,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "incomplete mans and fallbacks", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithAssistBases( makeMan(ro, "id2", "checkpoint", path.EmailCategory)), fbro: kopia.NewMockBackupBases().WithAssistBases( @@ -799,7 +799,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "complete and incomplete mans and fallbacks", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases(). WithMergeBases(makeMan(ro, "id1", "", path.EmailCategory)). WithAssistBases(makeMan(ro, "id2", "checkpoint", path.EmailCategory)), @@ -830,7 +830,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "incomplete mans and complete fallbacks", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithAssistBases( makeMan(ro, "id2", "checkpoint", path.EmailCategory)), fbro: kopia.NewMockBackupBases(). @@ -858,7 +858,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "incomplete mans and complete fallbacks, no assist bases", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithAssistBases( makeMan(ro, "id2", "checkpoint", path.EmailCategory)), fbro: kopia.NewMockBackupBases(). @@ -887,7 +887,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "complete mans and incomplete fallbacks", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithMergeBases( makeMan(ro, "id1", "", path.EmailCategory)), fbro: kopia.NewMockBackupBases().WithAssistBases( @@ -912,7 +912,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "complete mans and complete fallbacks, multiple reasons", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithMergeBases( makeMan(ro, "id1", "", path.EmailCategory, path.ContactsCategory)), fbro: kopia.NewMockBackupBases(). @@ -944,7 +944,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "complete mans and complete fallbacks, distinct reasons", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithMergeBases( makeMan(ro, "id1", "", path.EmailCategory)), fbro: kopia.NewMockBackupBases(). @@ -975,7 +975,7 @@ func (suite *OperationsManifestsUnitSuite) TestProduceManifestsAndMetadata_Fallb { name: "complete mans and complete fallbacks, fallback has superset of reasons", bf: &mockBackupFinder{ - data: map[string]kopia.BackupBases{ + data: map[string]backup.BackupBases{ ro: kopia.NewMockBackupBases().WithMergeBases( makeMan(ro, "id1", "", path.EmailCategory)), fbro: kopia.NewMockBackupBases().