(ctx context.Context, uploader *upload.Uploader, sourceRepo repo.Repository, destRepo repo.RepositoryWriter, s snapshot.SourceInfo)
| 225 | } |
| 226 | |
| 227 | func (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 | |
| 255 | func (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 != "" { |
no test coverage detected