working commit

This commit is contained in:
2026-03-11 19:47:40 +02:00
parent a81334aedf
commit a064d942e7
56 changed files with 564 additions and 243 deletions
+27 -22
View File
@@ -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) {