()
| 200 | } |
| 201 | |
| 202 | func eStargzConvertFunc() converter.ConvertFunc { |
| 203 | convertToESGZ := estargzconvert.LayerConvertFunc() |
| 204 | return func(ctx context.Context, cs content.Store, desc ocispec.Descriptor) (*ocispec.Descriptor, error) { |
| 205 | if isReusableESGZ(ctx, cs, desc) { |
| 206 | log.L.Infof("reusing estargz %s without conversion", desc.Digest) |
| 207 | return nil, nil |
| 208 | } |
| 209 | newDesc, err := convertToESGZ(ctx, cs, desc) |
| 210 | if err != nil { |
| 211 | return nil, err |
| 212 | } |
| 213 | log.L.Infof("converted %q to %s", desc.MediaType, newDesc.Digest) |
| 214 | return newDesc, err |
| 215 | } |
| 216 | |
| 217 | } |
| 218 | |
| 219 | func isReusableESGZ(ctx context.Context, cs content.Store, desc ocispec.Descriptor) bool { |
| 220 | dgstStr, ok := desc.Annotations[estargz.TOCJSONDigestAnnotation] |
no test coverage detected
searching dependent graphs…