in experimental/repository.go [122:175]
func (r *repositoryData) mark(blobs blobsData) error {
for name, t := range r.tags {
err := t.mark(blobs)
if err != nil {
if *softErrors {
logrus.Errorln("MARK:", r.name, "TAG:", name, "ERROR:", err)
continue
}
return err
}
}
for revision, used := range r.manifests {
if used == 0 {
continue
}
err := r.markManifestLayers(blobs, revision)
if err != nil {
if *softErrors {
logrus.Errorln("MARK:", r.name, "MANIFEST:", revision, "ERROR:", err)
continue
}
return err
}
}
for revision, signatures := range r.manifestSignatures {
err := r.markManifestSignatures(blobs, revision, signatures)
if err != nil {
if *softErrors {
logrus.Errorln("MARK:", r.name, "MANIFEST SIGNATURE:", revision, "ERROR:", err)
continue
}
return err
}
}
for digest, used := range r.layers {
if used == 0 {
continue
}
err := r.markLayer(blobs, digest)
if err != nil {
if *softErrors {
logrus.Errorln("MARK:", r.name, "LAYER:", digest, "ERROR:", err)
continue
}
return err
}
}
return nil
}