working commit
This commit is contained in:
+27
-22
@@ -12,7 +12,7 @@ package imageoper
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mstore/pkg/auxoci"
|
||||
//"mstore/pkg/auxoci"
|
||||
"mstore/pkg/auxtool"
|
||||
"mstore/pkg/auxuuid"
|
||||
"mstore/pkg/descr"
|
||||
@@ -26,45 +26,50 @@ const (
|
||||
oimMediaType = "application/vnd.oci.image.manifest.v1+json"
|
||||
)
|
||||
|
||||
func indexFromManigestDescrs(manifestDescrs []descr.Manifest) (ocispec.Index, string, error) {
|
||||
func indexFromManigestDescrs(mandescrs []descr.Manifest) (ocispec.Index, []byte, error) {
|
||||
var err error
|
||||
var payload string
|
||||
var indexdata []byte
|
||||
index := ocispec.Index{
|
||||
MediaType: oiiMediaType,
|
||||
Manifests: make([]ocispec.Descriptor, 0),
|
||||
}
|
||||
index.Versioned.SchemaVersion = 2
|
||||
for _, manifestDescr := range manifestDescrs {
|
||||
var ociManifest ocispec.Manifest
|
||||
for _, mandescr := range mandescrs {
|
||||
var man ocispec.Manifest
|
||||
|
||||
ociManifest.Subject = &ocispec.Descriptor{}
|
||||
ociManifest.Subject.Platform = &ocispec.Platform{}
|
||||
ociManifest.Config = ocispec.Descriptor{}
|
||||
ociManifest.Config.Platform = &ocispec.Platform{}
|
||||
man.Subject = &ocispec.Descriptor{}
|
||||
man.Subject.Platform = &ocispec.Platform{}
|
||||
man.Config = ocispec.Descriptor{}
|
||||
man.Config.Platform = &ocispec.Platform{}
|
||||
|
||||
err = json.Unmarshal([]byte(manifestDescr.Payload), &ociManifest)
|
||||
err = json.Unmarshal([]byte(mandescr.Payload), &man)
|
||||
if err != nil {
|
||||
return index, payload, err
|
||||
return index, indexdata, err
|
||||
}
|
||||
digobj, err := ocidigest.Parse(mandescr.Digest)
|
||||
if err != nil {
|
||||
return index, indexdata, err
|
||||
}
|
||||
size := int64(len(mandescr.Payload))
|
||||
descriptor := ocispec.Descriptor{
|
||||
MediaType: oimMediaType,
|
||||
Digest: auxoci.SHA256DigestFromString(manifestDescr.Payload),
|
||||
Size: int64(len(manifestDescr.Payload)),
|
||||
Platform: ociManifest.Subject.Platform,
|
||||
MediaType: mandescr.ContentType,
|
||||
Digest: digobj,
|
||||
Size: size,
|
||||
Platform: man.Subject.Platform,
|
||||
}
|
||||
index.Manifests = append(index.Manifests, descriptor)
|
||||
}
|
||||
indexBytes, err := json.Marshal(index)
|
||||
indexdata, err = json.Marshal(index)
|
||||
if err != nil {
|
||||
return index, payload, err
|
||||
return index, indexdata, err
|
||||
}
|
||||
payload = string(indexBytes)
|
||||
return index, payload, err
|
||||
indexdata = indexdata
|
||||
return index, indexdata, err
|
||||
}
|
||||
|
||||
func descrsFromManifest(name, reference string, manifest *ocispec.Manifest, rawManifest []byte) (descr.Manifest, []descr.Blob, error) {
|
||||
var err error
|
||||
manifestDescr := descr.Manifest{}
|
||||
mandescr := descr.Manifest{}
|
||||
//configDescr := descr.Blob{}
|
||||
blobDescrs := make([]descr.Blob, 0)
|
||||
|
||||
@@ -72,7 +77,7 @@ func descrsFromManifest(name, reference string, manifest *ocispec.Manifest, rawM
|
||||
|
||||
// Make manifest descriptor
|
||||
manifestDigest := ocidigest.SHA256.FromBytes(rawManifest).String()
|
||||
manifestDescr = descr.Manifest{
|
||||
mandescr = descr.Manifest{
|
||||
ID: auxuuid.NewUUID(),
|
||||
Name: name,
|
||||
Reference: reference,
|
||||
@@ -114,7 +119,7 @@ func descrsFromManifest(name, reference string, manifest *ocispec.Manifest, rawM
|
||||
layerMap[string(layer.Digest)] = true
|
||||
}
|
||||
}
|
||||
return manifestDescr, blobDescrs, err
|
||||
return mandescr, blobDescrs, err
|
||||
}
|
||||
|
||||
func layersDiff(name, reference string, existingManifest, incomingManifest *ocispec.Manifest, rawManifest []byte) ([]descr.Blob, []descr.Blob, error) {
|
||||
|
||||
Reference in New Issue
Block a user