mirror of
https://github.com/project-zot/zot.git
synced 2026-06-16 12:28:01 +08:00
refactor(artifact): remove oci artifact support (#1359)
* refactor(artifact): remove oci artifact support - add header to referrers call to indicated applied artifact type filters Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com> * feat(gc): simplify gc logic to increase coverage Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com> --------- Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com>
This commit is contained in:
+2
-4
@@ -490,10 +490,8 @@ func isNotationSigned(ctx context.Context, repo, digestStr string, searchConf se
|
||||
return false
|
||||
}
|
||||
|
||||
for _, reference := range referrers.Manifests {
|
||||
if reference.ArtifactType == notreg.ArtifactTypeNotation {
|
||||
return true
|
||||
}
|
||||
if len(referrers.Manifests) > 0 {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
|
||||
@@ -5,7 +5,6 @@ package cli //nolint:testpackage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
@@ -20,48 +19,6 @@ import (
|
||||
"zotregistry.io/zot/pkg/test"
|
||||
)
|
||||
|
||||
type RouteHandler struct {
|
||||
Route string
|
||||
// HandlerFunc is the HTTP handler function that receives a writer for output and an HTTP request as input.
|
||||
HandlerFunc http.HandlerFunc
|
||||
// AllowedMethods specifies the HTTP methods allowed for the current route.
|
||||
AllowedMethods []string
|
||||
}
|
||||
|
||||
// Routes is a map that associates HTTP paths to their corresponding HTTP handlers.
|
||||
type HTTPRoutes []RouteHandler
|
||||
|
||||
func StartTestHTTPServer(routes HTTPRoutes, port string) *http.Server {
|
||||
baseURL := test.GetBaseURL(port)
|
||||
mux := mux.NewRouter()
|
||||
|
||||
mux.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {
|
||||
_, err := w.Write([]byte("{}"))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}).Methods(http.MethodGet)
|
||||
|
||||
for _, routeHandler := range routes {
|
||||
mux.HandleFunc(routeHandler.Route, routeHandler.HandlerFunc).Methods(routeHandler.AllowedMethods...)
|
||||
}
|
||||
|
||||
server := &http.Server{ //nolint:gosec
|
||||
Addr: fmt.Sprintf(":%s", port),
|
||||
Handler: mux,
|
||||
}
|
||||
|
||||
go func() {
|
||||
if err := server.ListenAndServe(); !errors.Is(err, http.ErrServerClosed) {
|
||||
return
|
||||
}
|
||||
}()
|
||||
|
||||
test.WaitTillServerReady(baseURL + "/test")
|
||||
|
||||
return server
|
||||
}
|
||||
|
||||
func getDefaultSearchConf(baseURL string) searchConfig {
|
||||
verifyTLS := false
|
||||
debug := false
|
||||
@@ -81,7 +38,7 @@ func getDefaultSearchConf(baseURL string) searchConfig {
|
||||
func TestDoHTTPRequest(t *testing.T) {
|
||||
Convey("doHTTPRequest nil result pointer", t, func() {
|
||||
port := test.GetFreePort()
|
||||
server := StartTestHTTPServer(nil, port)
|
||||
server := test.StartTestHTTPServer(nil, port)
|
||||
defer server.Close()
|
||||
|
||||
url := fmt.Sprintf("http://127.0.0.1:%s/asd", port)
|
||||
@@ -93,7 +50,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
|
||||
Convey("doHTTPRequest bad return json", t, func() {
|
||||
port := test.GetFreePort()
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/test",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -135,7 +92,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
searchConf := getDefaultSearchConf(baseURL)
|
||||
|
||||
// 404 erorr will appear
|
||||
server := StartTestHTTPServer(HTTPRoutes{}, port)
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{}, port)
|
||||
defer server.Close()
|
||||
|
||||
URL := baseURL + "/v2/repo/manifests/tag"
|
||||
@@ -158,7 +115,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
searchConf := getDefaultSearchConf(baseURL)
|
||||
|
||||
Convey("makeGETRequest manifest error, context is done", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{}, port)
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{}, port)
|
||||
defer server.Close()
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
@@ -172,7 +129,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("makeGETRequest manifest error, context is not done", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{}, port)
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{}, port)
|
||||
defer server.Close()
|
||||
|
||||
_, err := fetchManifestStruct(context.Background(), "repo", "tag", searchConf,
|
||||
@@ -182,7 +139,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("makeGETRequest config error, context is not done", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -203,7 +160,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Platforms on config", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -258,7 +215,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("fetchImageIndexStruct no errors", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(writer http.ResponseWriter, req *http.Request) {
|
||||
@@ -327,7 +284,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("fetchImageIndexStruct makeGETRequest errors context done", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{}, port)
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{}, port)
|
||||
defer server.Close()
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
@@ -349,7 +306,7 @@ func TestDoHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("fetchImageIndexStruct makeGETRequest errors context not done", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{}, port)
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{}, port)
|
||||
defer server.Close()
|
||||
|
||||
URL := baseURL + "/v2/repo/manifests/indexRef"
|
||||
@@ -384,7 +341,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
reqPool.wtgrp.Add(1)
|
||||
|
||||
Convey("Do Job makeHEADRequest error context done", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{}, port)
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{}, port)
|
||||
defer server.Close()
|
||||
|
||||
URL := baseURL + "/v2/repo/manifests/manifestRef"
|
||||
@@ -404,7 +361,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Do Job makeHEADRequest error context not done", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{}, port)
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{}, port)
|
||||
defer server.Close()
|
||||
|
||||
URL := baseURL + "/v2/repo/manifests/manifestRef"
|
||||
@@ -426,7 +383,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Do Job fetchManifestStruct errors context canceled", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -459,7 +416,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Do Job fetchManifestStruct errors context not canceled", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -493,7 +450,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Do Job fetchIndexStruct errors context canceled", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -526,7 +483,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Do Job fetchIndexStruct errors context not canceled", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -559,7 +516,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
So(result.StrValue, ShouldResemble, "")
|
||||
})
|
||||
Convey("Do Job fetchIndexStruct not supported content type", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -589,7 +546,7 @@ func TestDoJobErrors(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("Media type is MediaTypeImageIndex image.string erorrs", func() {
|
||||
server := StartTestHTTPServer(HTTPRoutes{
|
||||
server := test.StartTestHTTPServer(test.HTTPRoutes{
|
||||
{
|
||||
Route: "/v2/{name}/manifests/{reference}",
|
||||
HandlerFunc: func(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@@ -713,7 +713,7 @@ func TestServerCVEResponse(t *testing.T) {
|
||||
str := space.ReplaceAllString(buff.String(), " ")
|
||||
str = strings.TrimSpace(str)
|
||||
So(err, ShouldBeNil)
|
||||
So(str, ShouldEqual, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 82836dd7 false 548B")
|
||||
So(str, ShouldEqual, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 40d1f749 false 605B")
|
||||
})
|
||||
|
||||
Convey("Test images by CVE ID - GQL - invalid CVE ID", t, func() {
|
||||
@@ -829,7 +829,7 @@ func TestServerCVEResponse(t *testing.T) {
|
||||
str := space.ReplaceAllString(buff.String(), " ")
|
||||
So(err, ShouldBeNil)
|
||||
So(strings.TrimSpace(str), ShouldEqual,
|
||||
"IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 82836dd7 false 548B")
|
||||
"IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 40d1f749 false 605B")
|
||||
})
|
||||
|
||||
Convey("Test CVE by name and CVE ID - GQL - invalid name and CVE ID", t, func() {
|
||||
@@ -907,7 +907,7 @@ func TestServerCVEResponse(t *testing.T) {
|
||||
str := space.ReplaceAllString(buff.String(), " ")
|
||||
str = strings.TrimSpace(str)
|
||||
So(err, ShouldBeNil)
|
||||
So(str, ShouldEqual, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 linux/amd64 82836dd7 false 548B")
|
||||
So(str, ShouldEqual, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 linux/amd64 40d1f749 false 605B")
|
||||
})
|
||||
|
||||
Convey("Test images by CVE ID - invalid CVE ID", t, func() {
|
||||
@@ -992,7 +992,7 @@ func TestServerCVEResponse(t *testing.T) {
|
||||
str := space.ReplaceAllString(buff.String(), " ")
|
||||
So(err, ShouldBeNil)
|
||||
So(strings.TrimSpace(str), ShouldEqual,
|
||||
"IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 linux/amd64 82836dd7 false 548B")
|
||||
"IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE zot-cve-test 0.0.1 linux/amd64 40d1f749 false 605B")
|
||||
})
|
||||
|
||||
Convey("Test CVE by name and CVE ID - invalid name and CVE ID", t, func() {
|
||||
|
||||
+15
-15
@@ -333,7 +333,7 @@ func TestSignature(t *testing.T) {
|
||||
str := space.ReplaceAllString(buff.String(), " ")
|
||||
actual := strings.TrimSpace(str)
|
||||
So(actual, ShouldContainSubstring, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE")
|
||||
So(actual, ShouldContainSubstring, "repo7 test:1.0 linux/amd64 6742241d true 447B")
|
||||
So(actual, ShouldContainSubstring, "repo7 test:1.0 linux/amd64 8e59ed3b true 504B")
|
||||
|
||||
t.Log("Test getting all images using rest calls to get catalog and individual manifests")
|
||||
cmd = MockNewImageCommand(new(searchService))
|
||||
@@ -346,7 +346,7 @@ func TestSignature(t *testing.T) {
|
||||
str = space.ReplaceAllString(buff.String(), " ")
|
||||
actual = strings.TrimSpace(str)
|
||||
So(actual, ShouldContainSubstring, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE")
|
||||
So(actual, ShouldContainSubstring, "repo7 test:1.0 linux/amd64 6742241d true 447B")
|
||||
So(actual, ShouldContainSubstring, "repo7 test:1.0 linux/amd64 8e59ed3b true 504B")
|
||||
|
||||
err = os.Chdir(currentWorkingDir)
|
||||
So(err, ShouldBeNil)
|
||||
@@ -410,7 +410,7 @@ func TestSignature(t *testing.T) {
|
||||
str := space.ReplaceAllString(buff.String(), " ")
|
||||
actual := strings.TrimSpace(str)
|
||||
So(actual, ShouldContainSubstring, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE")
|
||||
So(actual, ShouldContainSubstring, "repo7 0.0.1 linux/amd64 6742241d true 447B")
|
||||
So(actual, ShouldContainSubstring, "repo7 0.0.1 linux/amd64 8e59ed3b true 504B")
|
||||
|
||||
t.Log("Test getting all images using rest calls to get catalog and individual manifests")
|
||||
cmd = MockNewImageCommand(new(searchService))
|
||||
@@ -423,7 +423,7 @@ func TestSignature(t *testing.T) {
|
||||
str = space.ReplaceAllString(buff.String(), " ")
|
||||
actual = strings.TrimSpace(str)
|
||||
So(actual, ShouldContainSubstring, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE")
|
||||
So(actual, ShouldContainSubstring, "repo7 0.0.1 linux/amd64 6742241d true 447B")
|
||||
So(actual, ShouldContainSubstring, "repo7 0.0.1 linux/amd64 8e59ed3b true 504B")
|
||||
|
||||
err = os.Chdir(currentWorkingDir)
|
||||
So(err, ShouldBeNil)
|
||||
@@ -1333,13 +1333,13 @@ func runDisplayIndexTests(baseURL string) {
|
||||
actual := strings.TrimSpace(str)
|
||||
// Actual cli output should be something similar to (order of images may differ):
|
||||
// IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE
|
||||
// repo multi-arch * 46b78b06 false 1.4kB
|
||||
// linux/amd64 97b0d65c false 577B
|
||||
// repo multi-arch * 59b25ae4 false 1.5kB
|
||||
// linux/amd64 97b0d65c false 634B
|
||||
// windows/arm64/v6 dcfa3a9c false 444B
|
||||
So(actual, ShouldContainSubstring, "IMAGE NAME TAG OS/ARCH DIGEST SIGNED SIZE")
|
||||
So(actual, ShouldContainSubstring, "repo multi-arch * 46b78b06 false 1.4kB ")
|
||||
So(actual, ShouldContainSubstring, "linux/amd64 97b0d65c false 577B ")
|
||||
So(actual, ShouldContainSubstring, "windows/arm64/v6 dcfa3a9c false 444B")
|
||||
So(actual, ShouldContainSubstring, "repo multi-arch * 59b25ae4 false 1.5kB ")
|
||||
So(actual, ShouldContainSubstring, "linux/amd64 2ab1a275 false 634B ")
|
||||
So(actual, ShouldContainSubstring, "windows/arm64/v6 55fdd23a false 501B")
|
||||
})
|
||||
|
||||
Convey("Test Image Index Verbose", func() {
|
||||
@@ -1361,18 +1361,18 @@ func runDisplayIndexTests(baseURL string) {
|
||||
actual := strings.TrimSpace(str)
|
||||
// Actual cli output should be something similar to (order of images may differ):
|
||||
// IMAGE NAME TAG OS/ARCH DIGEST CONFIG SIGNED LAYERS SIZE
|
||||
// repo multi-arch * 46b78b06 false 1.4kB
|
||||
// linux/amd64 97b0d65c 58cc9abe false 577B
|
||||
// repo multi-arch * 59b25ae4 false 1.5kB
|
||||
// linux/amd64 2ab1a275 58cc9abe false 634B
|
||||
// cbb5b121 4B
|
||||
// a00291e8 4B
|
||||
// windows/arm64/v6 dcfa3a9c 5132a1cd false 444B
|
||||
// windows/arm64/v6 55fdd23a 5132a1cd false 501B
|
||||
// 7d08ce29 4B
|
||||
So(actual, ShouldContainSubstring, "IMAGE NAME TAG OS/ARCH DIGEST CONFIG SIGNED LAYERS SIZE")
|
||||
So(actual, ShouldContainSubstring, "repo multi-arch * 46b78b06 false 1.4kB")
|
||||
So(actual, ShouldContainSubstring, "linux/amd64 97b0d65c 58cc9abe false 577B")
|
||||
So(actual, ShouldContainSubstring, "repo multi-arch * 59b25ae4 false 1.5kB")
|
||||
So(actual, ShouldContainSubstring, "linux/amd64 2ab1a275 58cc9abe false 634B")
|
||||
So(actual, ShouldContainSubstring, "cbb5b121 4B")
|
||||
So(actual, ShouldContainSubstring, "a00291e8 4B")
|
||||
So(actual, ShouldContainSubstring, "windows/arm64/v6 dcfa3a9c 5132a1cd false 444B")
|
||||
So(actual, ShouldContainSubstring, "windows/arm64/v6 55fdd23a 5132a1cd false 501B")
|
||||
So(actual, ShouldContainSubstring, "7d08ce29 4B")
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user