diff --git a/src/cli/backup/onedrive.go b/src/cli/backup/onedrive.go index 4ee03a159..6b86cc041 100644 --- a/src/cli/backup/onedrive.go +++ b/src/cli/backup/onedrive.go @@ -334,7 +334,7 @@ func oneDriveDetailsCmd() *cobra.Command { } } -// lists the history of backup operations +// prints the item details for a given backup func detailsOneDriveCmd(cmd *cobra.Command, args []string) error { ctx := cmd.Context() diff --git a/src/internal/kopia/wrapper.go b/src/internal/kopia/wrapper.go index 31a32c422..8d28c90ea 100644 --- a/src/internal/kopia/wrapper.go +++ b/src/internal/kopia/wrapper.go @@ -2,6 +2,7 @@ package kopia import ( "context" + "strings" "github.com/hashicorp/go-multierror" "github.com/kopia/kopia/fs" @@ -277,6 +278,10 @@ func getItemStream( encodeElements(itemPath.PopFront().Elements()...), ) if err != nil { + if strings.Contains(err.Error(), "entry not found") { + err = errors.Wrap(ErrNotFound, err.Error()) + } + return nil, errors.Wrap(err, "getting nested object handle") } diff --git a/src/internal/operations/backup.go b/src/internal/operations/backup.go index 7bfea16c5..6a5a205d1 100644 --- a/src/internal/operations/backup.go +++ b/src/internal/operations/backup.go @@ -211,26 +211,19 @@ func produceManifestsAndMetadata( continue } - bup := backup.Backup{} + k, _ := kopia.MakeTagKV(kopia.TagBackupID) + bupID := man.Tags[k] - if err := sw.Get( - ctx, - model.BackupSchema, - model.StableID(man.Tags[kopia.TagBackupID]), - &bup, - ); err != nil { + bup, err := sw.GetBackup(ctx, model.StableID(bupID)) + if err != nil { return nil, nil, err } colls, err := collectMetadata(ctx, kw, graph.MetadataFileNames(), oc, tid, bup.SnapshotID) - if err != nil { + if err != nil && !errors.Is(err, kopia.ErrNotFound) { // prior metadata isn't guaranteed to exist. // if it doesn't, we'll just have to do a // full backup for that data. - if errors.Is(err, errNotRestored) { - continue - } - return nil, nil, err } @@ -240,8 +233,6 @@ func produceManifestsAndMetadata( return ms, collections, err } -var errNotRestored = errors.New("unable to restore metadata") - func collectMetadata( ctx context.Context, kw *kopia.Wrapper,