diff options
author | Bjorn Neergaard <bneergaard@mirantis.com> | 2023-03-15 07:52:42 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-15 07:52:42 -0600 |
commit | 1c84f63a40d3b76a436a4243902062b22bba58a9 (patch) | |
tree | 960a22e4f161a7978c7cd6227195b0ba7b375e05 /api/server | |
parent | 889427b334614c3aa89e7e0f7535e44bf4ce87b1 (diff) | |
parent | 7b3acdff5d01c6bbac5ddd38d3bc01277f06ee64 (diff) | |
download | docker-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.go | 5 | ||||
-rw-r--r-- | api/server/router/image/image.go | 4 | ||||
-rw-r--r-- | api/server/router/image/image_routes.go | 4 |
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 { |