app/imageoper, app/maindb: one image - one arch; app/storage: blob to name subdir
This commit is contained in:
+36
-21
@@ -66,34 +66,49 @@ func (oper *Operator) GetManifest(ctx context.Context, params *GetManifestParams
|
||||
res.Payload = manDescr.Payload
|
||||
|
||||
} else {
|
||||
// Create index of manifests. Or not.
|
||||
exists, manDescrs, err := oper.mdb.GetManifestsByReference(ctx, params.Name, params.Reference)
|
||||
/*
|
||||
// Create index of manifests. Or not.
|
||||
exists, manDescrs, err := oper.mdb.GetManifestsByReference(ctx, params.Name, params.Reference)
|
||||
if err != nil {
|
||||
return res, http.StatusInternalServerError, err
|
||||
}
|
||||
if !exists {
|
||||
return res, http.StatusNotFound, err
|
||||
}
|
||||
if len(manDescrs) == 1 {
|
||||
manDescr = manDescrs[0]
|
||||
res.DockerContentDigest = manDescr.Digest
|
||||
size := int64(len(manDescr.Payload))
|
||||
res.ContentLength = strconv.FormatInt(size, 10)
|
||||
res.ContentType = manDescr.ContentType
|
||||
res.Payload = manDescr.Payload
|
||||
} else {
|
||||
_, indexdata, err := indexFromManigestDescrs(manDescrs)
|
||||
if err != nil {
|
||||
return res, http.StatusInternalServerError, err
|
||||
}
|
||||
digobj := ocidigest.FromBytes(indexdata)
|
||||
res.DockerContentDigest = digobj.String()
|
||||
|
||||
size := int64(len(indexdata))
|
||||
res.ContentLength = strconv.FormatInt(size, 10)
|
||||
res.ContentType = oiiMediaType
|
||||
res.Payload = string(indexdata)
|
||||
}
|
||||
*/
|
||||
exists, manDescr, err := oper.mdb.GetManifestByReference(ctx, params.Name, params.Reference)
|
||||
if err != nil {
|
||||
return res, http.StatusInternalServerError, err
|
||||
}
|
||||
if !exists {
|
||||
return res, http.StatusNotFound, err
|
||||
}
|
||||
if len(manDescrs) == 1 {
|
||||
manDescr = manDescrs[0]
|
||||
res.DockerContentDigest = manDescr.Digest
|
||||
size := int64(len(manDescr.Payload))
|
||||
res.ContentLength = strconv.FormatInt(size, 10)
|
||||
res.ContentType = manDescr.ContentType
|
||||
res.Payload = manDescr.Payload
|
||||
} else {
|
||||
_, indexdata, err := indexFromManigestDescrs(manDescrs)
|
||||
if err != nil {
|
||||
return res, http.StatusInternalServerError, err
|
||||
}
|
||||
digobj := ocidigest.FromBytes(indexdata)
|
||||
res.DockerContentDigest = digobj.String()
|
||||
res.DockerContentDigest = manDescr.Digest
|
||||
size := int64(len(manDescr.Payload))
|
||||
res.ContentLength = strconv.FormatInt(size, 10)
|
||||
res.ContentType = manDescr.ContentType
|
||||
res.Payload = manDescr.Payload
|
||||
|
||||
size := int64(len(indexdata))
|
||||
res.ContentLength = strconv.FormatInt(size, 10)
|
||||
res.ContentType = oiiMediaType
|
||||
res.Payload = string(indexdata)
|
||||
}
|
||||
}
|
||||
return res, http.StatusOK, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user