From 819eab33405f00d248e81c8322ace50f41d2559f Mon Sep 17 00:00:00 2001 From: "Clarence \"Sparr\" Risher" Date: Mon, 17 Jul 2023 13:58:51 +0000 Subject: [PATCH] Continue on missing TargetSizeLabel or targetImageLayersSizeLabel Signed-off-by: Clarence "Sparr" Risher --- fs/source/source.go | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/fs/source/source.go b/fs/source/source.go index 7859d2dd4..daffcada4 100644 --- a/fs/source/source.go +++ b/fs/source/source.go @@ -111,36 +111,38 @@ func FromDefaultLabels(hosts RegistryHosts) GetSources { return nil, err } + var targetSize int64 targetSizeStr, ok := labels[TargetSizeLabel] - if !ok { - return nil, fmt.Errorf("layer size hasn't been passed") - } - targetSize, err := strconv.ParseInt(targetSizeStr, 10, 64) - if err != nil { - return nil, err + if ok { + targetSize, err = strconv.ParseInt(targetSizeStr, 10, 64) + if err != nil { + return nil, err + } } var neighboringLayers []ocispec.Descriptor if l, ok := labels[ctdsnapshotters.TargetImageLayersLabel]; ok { layerDigestsStr := strings.Split(l, ",") - layerSizes := strings.Split(labels[targetImageLayersSizeLabel], ",") - if len(layerDigestsStr) != len(layerSizes) { - return nil, fmt.Errorf("the lengths of layer digests and layer sizes don't match") - } - - for i := 0; i < len(layerDigestsStr); i++ { - l := layerDigestsStr[i] - d, err := digest.Parse(l) - if err != nil { - return nil, err + if s, ok := labels[targetImageLayersSizeLabel]; ok { + layerSizes := strings.Split(s, ",") + if len(layerDigestsStr) != len(layerSizes) { + return nil, fmt.Errorf("the lengths of layer digests and layer sizes don't match") } - if d.String() != target.String() { - size, err := strconv.ParseInt(layerSizes[i], 10, 64) + + for i := 0; i < len(layerDigestsStr); i++ { + l := layerDigestsStr[i] + d, err := digest.Parse(l) if err != nil { return nil, err } - desc := ocispec.Descriptor{Digest: d, Size: size} - neighboringLayers = append(neighboringLayers, desc) + if d.String() != target.String() { + size, err := strconv.ParseInt(layerSizes[i], 10, 64) + if err != nil { + return nil, err + } + desc := ocispec.Descriptor{Digest: d, Size: size} + neighboringLayers = append(neighboringLayers, desc) + } } } }