MCPcopy Create free account
hub / github.com/dagger/dagger / localClosureHasMatchingSource

Method localClosureHasMatchingSource

engine/server/resolver/resolver.go:521–543  ·  view source on GitHub ↗
(ctx context.Context, refspec ctdreference.Spec, closure *localizedImageClosure)

Source from the content-addressed store, hash-verified

519}
520
521func (r *Resolver) localClosureHasMatchingSource(ctx context.Context, refspec ctdreference.Spec, closure *localizedImageClosure) (bool, error) {
522 descs := make([]ocispecs.Descriptor, 0, 1+len(closure.Layers)+len(closure.Nonlayers))
523 descs = append(descs, closure.ConfigDesc)
524 descs = append(descs, closure.Layers...)
525 descs = append(descs, closure.Nonlayers...)
526 for _, desc := range descs {
527 info, err := r.contentStore.Info(ctx, desc.Digest)
528 if err != nil {
529 if cerrdefs.IsNotFound(err) {
530 return false, nil
531 }
532 return false, err
533 }
534 ok, err := contentutil.HasSource(info, refspec)
535 if err != nil {
536 return false, err
537 }
538 if !ok {
539 return false, nil
540 }
541 }
542 return true, nil
543}
544
545func (r *Resolver) attachLocalizedClosureToLease(ctx context.Context, closure *localizedImageClosure) error {
546 descs := make([]ocispecs.Descriptor, 0, 2+len(closure.Layers)+len(closure.Nonlayers))

Callers 1

Calls 2

HasSourceFunction · 0.92
InfoMethod · 0.65

Tested by

no test coverage detected