From c6a2440d1b0774e2475510a9fccfae0cadca2644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E6=88=98=E6=B3=A2?= Date: Fri, 29 Sep 2017 17:12:07 +0800 Subject: [PATCH] Update layering.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This get method only need to use the top layer of the layer can be, and do not need to recursively call again. Official website description:https://github.com/coreos/clair/blob/v2.0.1/Documentation/api_v1.md#get-layersname --- clair/layering.go | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/clair/layering.go b/clair/layering.go index 358df0e..ce2966d 100644 --- a/clair/layering.go +++ b/clair/layering.go @@ -80,23 +80,24 @@ func (layers *layering) pushAll() error { } func (layers *layering) analyzeAll() ImageAnalysis { - layerCount := len(layers.digests) res := []v1.LayerEnvelope{} - - for index := range layers.digests { - digest := layers.digests[layerCount-index-1] - if config.IsLocal { - digest = strings.TrimPrefix(digest, "sha256:") - } - lShort := xstrings.Substr(digest, 0, 12) - - if a, err := analyzeLayer(digest); err != nil { - log.Errorf("analysing layer [%v] %d/%d: %v", lShort, index+1, layerCount, err) - } else { - log.Infof("analysing layer [%v] %d/%d", lShort, index+1, layerCount) - res = append(res, a) - } + layerCount := len(layers.digests) + if layerCount == 0 { + logrus.Warningln("there is no layer to push") } + + digest := layers.digests[len(layers.digests)-1] + if config.IsLocal { + digest = strings.TrimPrefix(digest, "sha256:") + } + lShort := xstrings.Substr(digest, 0, 12) + if a, err := analyzeLayer(digest); err != nil { + log.Errorf("analysing layer [%v]: %v", lShort, err) + } else { + log.Infof("analysing layer [%v]", lShort) + res = append(res, a) + } + return ImageAnalysis{ Registry: xstrings.TrimPrefixSuffix(layers.image.Hostname(), "http://", "/v2"), ImageName: layers.image.Name(),