MCPcopy
hub / github.com/kopia/kopia / migrateSingleSource

Method migrateSingleSource

cli/command_snapshot_migrate.go:227–253  ·  view source on GitHub ↗
(ctx context.Context, uploader *upload.Uploader, sourceRepo repo.Repository, destRepo repo.RepositoryWriter, s snapshot.SourceInfo)

Source from the content-addressed store, hash-verified

225}
226
227func (c *commandSnapshotMigrate) migrateSingleSource(ctx context.Context, uploader *upload.Uploader, sourceRepo repo.Repository, destRepo repo.RepositoryWriter, s snapshot.SourceInfo) error {
228 manifests, err := snapshot.ListSnapshotManifests(ctx, sourceRepo, &s, nil)
229 if err != nil {
230 return errors.Wrapf(err, "error listing snapshot manifests for %v", s)
231 }
232
233 snapshots, err := snapshot.LoadSnapshots(ctx, sourceRepo, manifests)
234 if err != nil {
235 return errors.Wrapf(err, "unable to load snapshot manifests for %v", s)
236 }
237
238 sort.Slice(snapshots, func(i, j int) bool {
239 return snapshots[i].StartTime.Before(snapshots[j].StartTime)
240 })
241
242 for _, m := range c.filterSnapshotsToMigrate(snapshots) {
243 if uploader.IsCanceled() {
244 break
245 }
246
247 if err := c.migrateSingleSourceSnapshot(ctx, uploader, sourceRepo, destRepo, s, m); err != nil {
248 return err
249 }
250 }
251
252 return nil
253}
254
255func (c *commandSnapshotMigrate) migrateSingleSourceSnapshot(ctx context.Context, uploader *upload.Uploader, sourceRepo repo.Repository, destRepo repo.RepositoryWriter, s snapshot.SourceInfo, m *snapshot.Manifest) error {
256 if m.IncompleteReason != "" {

Callers 1

runMethod · 0.95

Calls 6

ListSnapshotManifestsFunction · 0.92
LoadSnapshotsFunction · 0.92
IsCanceledMethod · 0.80
BeforeMethod · 0.45

Tested by

no test coverage detected