MCPcopy
hub / github.com/containerd/containerd / FetchHandler

Function FetchHandler

core/remotes/handlers.go:118–135  ·  view source on GitHub ↗

FetchHandler returns a handler that will fetch all content into the ingester discovered in a call to Dispatch. Use with ChildrenHandler to do a full recursive fetch.

(ingester content.Ingester, fetcher Fetcher)

Source from the content-addressed store, hash-verified

116// discovered in a call to Dispatch. Use with ChildrenHandler to do a full
117// recursive fetch.
118func FetchHandler(ingester content.Ingester, fetcher Fetcher) images.HandlerFunc {
119 return func(ctx context.Context, desc ocispec.Descriptor) ([]ocispec.Descriptor, error) {
120 ctx = log.WithLogger(ctx, log.G(ctx).WithFields(log.Fields{
121 "digest": desc.Digest,
122 "mediatype": desc.MediaType,
123 "size": desc.Size,
124 }))
125
126 if desc.MediaType == images.MediaTypeDockerSchema1Manifest {
127 return nil, fmt.Errorf("%v not supported", desc.MediaType)
128 }
129 err := Fetch(ctx, ingester, fetcher, desc)
130 if errdefs.IsAlreadyExists(err) {
131 return nil, nil
132 }
133 return nil, err
134 }
135}
136
137// Fetch fetches the given digest into the provided ingester
138func Fetch(ctx context.Context, ingester content.Ingester, fetcher Fetcher, desc ocispec.Descriptor) error {

Callers 1

fetchMethod · 0.92

Calls 1

FetchFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…