MCPcopy
hub / github.com/containerd/containerd / createNewImage

Method createNewImage

client/pull.go:288–314  ·  view source on GitHub ↗
(ctx context.Context, img images.Image)

Source from the content-addressed store, hash-verified

286}
287
288func (c *Client) createNewImage(ctx context.Context, img images.Image) (images.Image, error) {
289 ctx, span := tracing.StartSpan(ctx, tracing.Name(pullSpanPrefix, "pull.createNewImage"))
290 defer span.End()
291 is := c.ImageService()
292 for {
293 if created, err := is.Create(ctx, img); err != nil {
294 if !errdefs.IsAlreadyExists(err) {
295 return images.Image{}, err
296 }
297
298 updated, err := is.Update(ctx, img)
299 if err != nil {
300 // if image was removed, try create again
301 if errdefs.IsNotFound(err) {
302 continue
303 }
304 return images.Image{}, err
305 }
306
307 img = updated
308 } else {
309 img = created
310 }
311
312 return img, nil
313 }
314}

Callers 2

PullMethod · 0.95
FetchMethod · 0.95

Calls 6

ImageServiceMethod · 0.95
StartSpanFunction · 0.92
NameFunction · 0.92
EndMethod · 0.80
CreateMethod · 0.65
UpdateMethod · 0.65

Tested by

no test coverage detected