MCPcopy
hub / github.com/containerd/containerd / exportStream

Method exportStream

core/transfer/local/export.go:26–64  ·  view source on GitHub ↗
(ctx context.Context, ig transfer.ImageGetter, is transfer.ImageExporter, tops *transfer.Config)

Source from the content-addressed store, hash-verified

24)
25
26func (ts *localTransferService) exportStream(ctx context.Context, ig transfer.ImageGetter, is transfer.ImageExporter, tops *transfer.Config) error {
27 ctx, done, err := ts.withLease(ctx)
28 if err != nil {
29 return err
30 }
31 defer done(ctx)
32
33 if tops.Progress != nil {
34 tops.Progress(transfer.Progress{
35 Event: "Exporting",
36 })
37 }
38
39 var imgs []images.Image
40 if il, ok := ig.(transfer.ImageLookup); ok {
41 imgs, err = il.Lookup(ctx, ts.images)
42 if err != nil {
43 return err
44 }
45 } else {
46 img, err := ig.Get(ctx, ts.images)
47 if err != nil {
48 return err
49 }
50 imgs = append(imgs, img)
51 }
52
53 err = is.Export(ctx, ts.content, imgs)
54 if err != nil {
55 return err
56 }
57
58 if tops.Progress != nil {
59 tops.Progress(transfer.Progress{
60 Event: "Completed export",
61 })
62 }
63 return nil
64}

Callers 1

TransferMethod · 0.95

Calls 5

withLeaseMethod · 0.95
ProgressMethod · 0.80
LookupMethod · 0.65
GetMethod · 0.65
ExportMethod · 0.65

Tested by

no test coverage detected