MCPcopy Index your code
hub / github.com/containerd/containerd / writeImage

Function writeImage

core/metadata/images.go:419–454  ·  view source on GitHub ↗
(bkt *bolt.Bucket, image *images.Image)

Source from the content-addressed store, hash-verified

417}
418
419func writeImage(bkt *bolt.Bucket, image *images.Image) error {
420 if err := boltutil.WriteTimestamps(bkt, image.CreatedAt, image.UpdatedAt); err != nil {
421 return err
422 }
423
424 if err := boltutil.WriteLabels(bkt, image.Labels); err != nil {
425 return fmt.Errorf("writing labels for image %v: %w", image.Name, err)
426 }
427
428 if err := boltutil.WriteAnnotations(bkt, image.Target.Annotations); err != nil {
429 return fmt.Errorf("writing Annotations for image %v: %w", image.Name, err)
430 }
431
432 // write the target bucket
433 tbkt, err := bkt.CreateBucketIfNotExists(bucketKeyTarget)
434 if err != nil {
435 return err
436 }
437
438 sizeEncoded, err := encodeInt(image.Target.Size)
439 if err != nil {
440 return err
441 }
442
443 for _, v := range [][2][]byte{
444 {bucketKeyDigest, []byte(image.Target.Digest)},
445 {bucketKeyMediaType, []byte(image.Target.MediaType)},
446 {bucketKeySize, sizeEncoded},
447 } {
448 if err := tbkt.Put(v[0], v[1]); err != nil {
449 return err
450 }
451 }
452
453 return nil
454}
455
456func encodeInt(i int64) ([]byte, error) {
457 var (

Callers 2

CreateMethod · 0.85
UpdateMethod · 0.85

Calls 5

WriteTimestampsFunction · 0.92
WriteLabelsFunction · 0.92
WriteAnnotationsFunction · 0.92
encodeIntFunction · 0.85
PutMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…