working commit
This commit is contained in:
+6
-10
@@ -99,16 +99,16 @@ func (ima *Imager) ReadManifest(ctx context.Context, digstr string) (bool, strin
|
||||
if err != nil {
|
||||
return exist, mime, man, err
|
||||
}
|
||||
|
||||
var size int64
|
||||
for _, descr := range ima.index.Manifests {
|
||||
if digstr == descr.Digest.Encoded() {
|
||||
size = descr.Size
|
||||
if digstr == descr.Digest.String() {
|
||||
mime = descr.MediaType
|
||||
exist = true
|
||||
}
|
||||
}
|
||||
|
||||
if !exist {
|
||||
err = errors.New("Manifest not found in index")
|
||||
return exist, mime, man, err
|
||||
}
|
||||
subdir := string(digobj.Algorithm())
|
||||
mpath := filepath.Join(ima.place, ocispec.ImageBlobsDir, subdir, digobj.Encoded())
|
||||
mfile, err := os.OpenFile(mpath, os.O_RDONLY, 0)
|
||||
@@ -120,12 +120,8 @@ func (ima *Imager) ReadManifest(ctx context.Context, digstr string) (bool, strin
|
||||
buffer := bytes.NewBuffer(nil)
|
||||
verifier := digobj.Verifier()
|
||||
mwriter := io.MultiWriter(verifier, buffer)
|
||||
readsize, err := io.Copy(mwriter, mfile)
|
||||
_, err = io.Copy(mwriter, mfile)
|
||||
man = buffer.Bytes()
|
||||
if size != readsize {
|
||||
err = errors.New("Mismatch manigest sizes")
|
||||
return exist, mime, man, err
|
||||
}
|
||||
if !verifier.Verified() {
|
||||
err = errors.New("Mismatch manifest digests")
|
||||
return exist, mime, man, err
|
||||
|
||||
@@ -20,7 +20,12 @@ func (down *Loader) Push(ctx context.Context, rawref, dir, osname, arch string)
|
||||
}
|
||||
index := imager.Index()
|
||||
for _, descr := range index.Manifests {
|
||||
_, _, mandata, err := imager.ReadManifest(ctx, descr.Digest.Encoded())
|
||||
digstr := descr.Digest.String()
|
||||
|
||||
_, _, mandata, err := imager.ReadManifest(ctx, digstr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
man := &ocispec.Manifest{}
|
||||
err = json.Unmarshal(mandata, man)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user