summaryrefslogtreecommitdiff
path: root/api/server
diff options
context:
space:
mode:
authorBjorn Neergaard <bneergaard@mirantis.com>2023-03-15 07:52:42 -0600
committerGitHub <noreply@github.com>2023-03-15 07:52:42 -0600
commit1c84f63a40d3b76a436a4243902062b22bba58a9 (patch)
tree960a22e4f161a7978c7cd6227195b0ba7b375e05 /api/server
parent889427b334614c3aa89e7e0f7535e44bf4ce87b1 (diff)
parent7b3acdff5d01c6bbac5ddd38d3bc01277f06ee64 (diff)
downloaddocker-1c84f63a40d3b76a436a4243902062b22bba58a9.tar.gz
Merge pull request #45086 from corhere/search-in-registry-service
Move filtered registry search out of the image service
Diffstat (limited to 'api/server')
-rw-r--r--api/server/router/image/backend.go5
-rw-r--r--api/server/router/image/image.go4
-rw-r--r--api/server/router/image/image_routes.go4
3 files changed, 9 insertions, 4 deletions
diff --git a/api/server/router/image/backend.go b/api/server/router/image/backend.go
index d4558fd0dd..6dcee6f100 100644
--- a/api/server/router/image/backend.go
+++ b/api/server/router/image/backend.go
@@ -39,5 +39,8 @@ type importExportBackend interface {
type registryBackend interface {
PullImage(ctx context.Context, image, tag string, platform *specs.Platform, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error
PushImage(ctx context.Context, image, tag string, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error
- SearchRegistryForImages(ctx context.Context, searchFilters filters.Args, term string, limit int, authConfig *registry.AuthConfig, metaHeaders map[string][]string) (*registry.SearchResults, error)
+}
+
+type Searcher interface {
+ Search(ctx context.Context, searchFilters filters.Args, term string, limit int, authConfig *registry.AuthConfig, metaHeaders map[string][]string) ([]registry.SearchResult, error)
}
diff --git a/api/server/router/image/image.go b/api/server/router/image/image.go
index 70750d09af..7dd1eabf44 100644
--- a/api/server/router/image/image.go
+++ b/api/server/router/image/image.go
@@ -10,6 +10,7 @@ import (
// imageRouter is a router to talk with the image controller
type imageRouter struct {
backend Backend
+ searcher Searcher
referenceBackend reference.Store
imageStore image.Store
layerStore layer.Store
@@ -17,9 +18,10 @@ type imageRouter struct {
}
// NewRouter initializes a new image router
-func NewRouter(backend Backend, referenceBackend reference.Store, imageStore image.Store, layerStore layer.Store) router.Router {
+func NewRouter(backend Backend, searcher Searcher, referenceBackend reference.Store, imageStore image.Store, layerStore layer.Store) router.Router {
ir := &imageRouter{
backend: backend,
+ searcher: searcher,
referenceBackend: referenceBackend,
imageStore: imageStore,
layerStore: layerStore,
diff --git a/api/server/router/image/image_routes.go b/api/server/router/image/image_routes.go
index 5e0cbac315..3140a663ab 100644
--- a/api/server/router/image/image_routes.go
+++ b/api/server/router/image/image_routes.go
@@ -415,11 +415,11 @@ func (ir *imageRouter) getImagesSearch(ctx context.Context, w http.ResponseWrite
// For a search it is not an error if no auth was given. Ignore invalid
// AuthConfig to increase compatibility with the existing API.
authConfig, _ := registry.DecodeAuthConfig(r.Header.Get(registry.AuthHeader))
- query, err := ir.backend.SearchRegistryForImages(ctx, searchFilters, r.Form.Get("term"), limit, authConfig, headers)
+ res, err := ir.searcher.Search(ctx, searchFilters, r.Form.Get("term"), limit, authConfig, headers)
if err != nil {
return err
}
- return httputils.WriteJSON(w, http.StatusOK, query.Results)
+ return httputils.WriteJSON(w, http.StatusOK, res)
}
func (ir *imageRouter) postImagesPrune(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {