mirror of
https://github.com/project-zot/zot.git
synced 2024-12-23 22:27:35 -05:00
e0d808b196
Return this data as part of GlobalSearch and RepoListWithNewestImage query results. This commit also includes refactoring of the CVE scanning logic in order to better encapsulate trivy specific logic, remove CVE scanning logic from the graphql resolver. Signed-off-by: Andrei Aaron <andaaron@cisco.com>
139 lines
4.2 KiB
Go
139 lines
4.2 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)
|
|
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)
|
|
CheckManifestSignatureFn func(name string, digest godigest.Digest) bool
|
|
GetRepositoriesFn func() ([]string, error)
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetRepositories() ([]string, error) {
|
|
if olum.GetRepositoriesFn != nil {
|
|
return olum.GetRepositoriesFn()
|
|
}
|
|
|
|
return []string{}, nil
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) GetImageManifests(image string) ([]ispec.Descriptor, error) {
|
|
if olum.GetImageManifestsFn != 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) 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
|
|
}
|
|
|
|
func (olum OciLayoutUtilsMock) CheckManifestSignature(name string, digest godigest.Digest) bool {
|
|
if olum.CheckManifestSignatureFn != nil {
|
|
return olum.CheckManifestSignatureFn(name, digest)
|
|
}
|
|
|
|
return false
|
|
}
|