MCPcopy Create free account
hub / github.com/linuxkit/linuxkit / DescriptorWrite

Method DescriptorWrite

src/cmd/linuxkit/pkglib/build_test.go:410–442  ·  view source on GitHub ↗
(image string, desc v1.Descriptor)

Source from the content-addressed store, hash-verified

408}
409
410func (c *cacheMocker) DescriptorWrite(image string, desc v1.Descriptor) error {
411 if !c.enabledDescriptorWrite {
412 return errors.New("descriptor disabled")
413 }
414 var (
415 im = v1.IndexManifest{
416 MediaType: types.OCIImageIndex,
417 Manifests: []v1.Descriptor{desc},
418 SchemaVersion: 2,
419 }
420 )
421 // write the updated index, remove the old one
422 b, err := json.Marshal(im)
423 if err != nil {
424 return fmt.Errorf("unable to marshal new index to json: %v", err)
425 }
426 hash, size, err := v1.SHA256(bytes.NewReader(b))
427 if err != nil {
428 return fmt.Errorf("error calculating hash of index json: %v", err)
429 }
430 c.assignHash(hash.String(), b)
431 root := v1.Descriptor{
432 MediaType: types.OCIImageIndex,
433 Size: size,
434 Digest: hash,
435 Annotations: map[string]string{
436 imagespec.AnnotationRefName: image,
437 },
438 }
439 c.appendImage(image, root)
440
441 return nil
442}
443func (c *cacheMocker) FindDescriptor(ref *reference.Spec) (*v1.Descriptor, error) {
444 name := ref.String()
445 if desc, ok := c.images[name]; ok && len(desc) > 0 {

Callers

nothing calls this directly

Calls 3

assignHashMethod · 0.95
appendImageMethod · 0.95
StringMethod · 0.65

Tested by

no test coverage detected