mirror of
https://github.com/project-zot/zot.git
synced 2026-06-15 20:07:55 +08:00
b5f27c5b50
ImageListWithLatestTag currently returns a list of ImageInfo objects. It needs to return consistent results with the API used for Global search as the same information will be used by the UI in the same type or cards. So we need to update RepoSummary to include the data which right now is present in ImageInfo, but missing from RepoSummary (information on the latest tag in that specific repo). Will update return type of ImageListWithLatestTag in a later PR (issue tracked in a separate GH issue) Closes #666 Signed-off-by: Andrei Aaron <andaaron@cisco.com>
131 lines
4.0 KiB
Go
131 lines
4.0 KiB
Go
package mocks
|
|
|
|
import (
|
|
"time"
|
|
|
|
v1 "github.com/google/go-containerregistry/pkg/v1"
|
|
godigest "github.com/opencontainers/go-digest"
|
|
ispec "github.com/opencontainers/image-spec/specs-go/v1"
|
|
"zotregistry.io/zot/pkg/extensions/search/common"
|
|
)
|
|
|
|
type OciLayoutUtilsMock struct {
|
|
GetImageManifestsFn func(image string) ([]ispec.Descriptor, error)
|
|
GetImageBlobManifestFn func(imageDir string, digest godigest.Digest) (v1.Manifest, error)
|
|
GetImageInfoFn func(imageDir string, hash v1.Hash) (ispec.Image, error)
|
|
IsValidImageFormatFn func(image string) (bool, error)
|
|
GetImageTagsWithTimestampFn func(repo string) ([]common.TagInfo, error)
|
|
GetImageLastUpdatedFn func(imageInfo ispec.Image) time.Time
|
|
GetImagePlatformFn func(imageInfo ispec.Image) (string, string)
|
|
GetImageVendorFn func(imageInfo ispec.Image) string
|
|
GetImageManifestSizeFn func(repo string, manifestDigest godigest.Digest) int64
|
|
GetImageConfigSizeFn func(repo string, manifestDigest godigest.Digest) int64
|
|
GetRepoLastUpdatedFn func(repo string) (common.TagInfo, error)
|
|
GetExpandedRepoInfoFn func(name string) (common.RepoInfo, error)
|
|
GetImageConfigInfoFn func(repo string, manifestDigest godigest.Digest) (ispec.Image, error)
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageManifests(image string) ([]ispec.Descriptor, error) {
|
|
if olum.GetImageBlobManifestFn != nil {
|
|
return olum.GetImageManifestsFn(image)
|
|
}
|
|
|
|
return []ispec.Descriptor{}, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageBlobManifest(imageDir string, digest godigest.Digest) (v1.Manifest, error) {
|
|
if olum.GetImageBlobManifestFn != nil {
|
|
return olum.GetImageBlobManifestFn(imageDir, digest)
|
|
}
|
|
|
|
return v1.Manifest{}, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageInfo(imageDir string, hash v1.Hash) (ispec.Image, error) {
|
|
if olum.GetImageInfoFn != nil {
|
|
return olum.GetImageInfoFn(imageDir, hash)
|
|
}
|
|
|
|
return ispec.Image{}, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) IsValidImageFormat(image string) (bool, error) {
|
|
if olum.IsValidImageFormatFn != nil {
|
|
return olum.IsValidImageFormatFn(image)
|
|
}
|
|
|
|
return true, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageTagsWithTimestamp(repo string) ([]common.TagInfo, error) {
|
|
if olum.GetImageTagsWithTimestampFn != nil {
|
|
return olum.GetImageTagsWithTimestampFn(repo)
|
|
}
|
|
|
|
return []common.TagInfo{}, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageLastUpdated(imageInfo ispec.Image) time.Time {
|
|
if olum.GetImageLastUpdatedFn != nil {
|
|
return olum.GetImageLastUpdatedFn(imageInfo)
|
|
}
|
|
|
|
return time.Time{}
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImagePlatform(imageInfo ispec.Image) (string, string) {
|
|
if olum.GetImagePlatformFn != nil {
|
|
return olum.GetImagePlatformFn(imageInfo)
|
|
}
|
|
|
|
return "", ""
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageVendor(imageInfo ispec.Image) string {
|
|
if olum.GetImageVendorFn != nil {
|
|
return olum.GetImageVendorFn(imageInfo)
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageManifestSize(repo string, manifestDigest godigest.Digest) int64 {
|
|
if olum.GetImageManifestSizeFn != nil {
|
|
return olum.GetImageManifestSizeFn(repo, manifestDigest)
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageConfigSize(repo string, manifestDigest godigest.Digest) int64 {
|
|
if olum.GetImageConfigSizeFn != nil {
|
|
return olum.GetImageConfigSizeFn(repo, manifestDigest)
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetRepoLastUpdated(repo string) (common.TagInfo, error) {
|
|
if olum.GetRepoLastUpdatedFn != nil {
|
|
return olum.GetRepoLastUpdatedFn(repo)
|
|
}
|
|
|
|
return common.TagInfo{}, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetExpandedRepoInfo(name string) (common.RepoInfo, error) {
|
|
if olum.GetExpandedRepoInfoFn != nil {
|
|
return olum.GetExpandedRepoInfoFn(name)
|
|
}
|
|
|
|
return common.RepoInfo{}, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageConfigInfo(repo string, manifestDigest godigest.Digest) (ispec.Image, error) {
|
|
if olum.GetImageConfigInfoFn != nil {
|
|
return olum.GetImageConfigInfoFn(repo, manifestDigest)
|
|
}
|
|
|
|
return ispec.Image{}, nil
|
|
}
|