Update for changed PutBlob API

Signed-off-by: Antoine Eiche <lewo@abesis.fr>
This commit is contained in:
Miloslav Trmač 2018-02-14 22:07:13 +01:00 committed by Antoine Eiche
parent b08350db15
commit aa73bd9d0d

View File

@ -46,7 +46,11 @@ var layersCmd = cli.Command{
} }
}() }()
var blobDigests []digest.Digest type blobDigest struct {
digest digest.Digest
isConfig bool
}
var blobDigests []blobDigest
for _, dString := range c.Args().Tail() { for _, dString := range c.Args().Tail() {
if !strings.HasPrefix(dString, "sha256:") { if !strings.HasPrefix(dString, "sha256:") {
dString = "sha256:" + dString dString = "sha256:" + dString
@ -55,7 +59,7 @@ var layersCmd = cli.Command{
if err != nil { if err != nil {
return err return err
} }
blobDigests = append(blobDigests, d) blobDigests = append(blobDigests, blobDigest{digest: d, isConfig: false})
} }
if len(blobDigests) == 0 { if len(blobDigests) == 0 {
@ -63,13 +67,13 @@ var layersCmd = cli.Command{
seenLayers := map[digest.Digest]struct{}{} seenLayers := map[digest.Digest]struct{}{}
for _, info := range layers { for _, info := range layers {
if _, ok := seenLayers[info.Digest]; !ok { if _, ok := seenLayers[info.Digest]; !ok {
blobDigests = append(blobDigests, info.Digest) blobDigests = append(blobDigests, blobDigest{digest: info.Digest, isConfig: false})
seenLayers[info.Digest] = struct{}{} seenLayers[info.Digest] = struct{}{}
} }
} }
configInfo := src.ConfigInfo() configInfo := src.ConfigInfo()
if configInfo.Digest != "" { if configInfo.Digest != "" {
blobDigests = append(blobDigests, configInfo.Digest) blobDigests = append(blobDigests, blobDigest{digest: configInfo.Digest, isConfig: true})
} }
} }
@ -92,12 +96,12 @@ var layersCmd = cli.Command{
} }
}() }()
for _, digest := range blobDigests { for _, bd := range blobDigests {
r, blobSize, err := rawSource.GetBlob(types.BlobInfo{Digest: digest, Size: -1}) r, blobSize, err := rawSource.GetBlob(types.BlobInfo{Digest: bd.digest, Size: -1})
if err != nil { if err != nil {
return err return err
} }
if _, err := dest.PutBlob(r, types.BlobInfo{Digest: digest, Size: blobSize}); err != nil { if _, err := dest.PutBlob(r, types.BlobInfo{Digest: bd.digest, Size: blobSize}, bd.isConfig); err != nil {
if closeErr := r.Close(); closeErr != nil { if closeErr := r.Close(); closeErr != nil {
return errors.Wrapf(err, " (close error: %v)", closeErr) return errors.Wrapf(err, " (close error: %v)", closeErr)
} }