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