From 39f3adc07926df9ca0648d56573af537664ac3cf Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 3 Mar 2022 10:28:39 +0100 Subject: [PATCH] daemon/images: use types/registry.AuthConfig Signed-off-by: Sebastiaan van Stijn --- daemon/images/image_builder.go | 10 ++-- daemon/images/image_pull.go | 8 ++-- daemon/images/image_push.go | 4 +- daemon/images/image_search.go | 11 ++--- daemon/images/image_search_test.go | 73 +++++++++++++++--------------- 5 files changed, 52 insertions(+), 54 deletions(-) diff --git a/daemon/images/image_builder.go b/daemon/images/image_builder.go index 1f559dc5c3..a5fa0aa46d 100644 --- a/daemon/images/image_builder.go +++ b/daemon/images/image_builder.go @@ -7,8 +7,8 @@ import ( "github.com/containerd/containerd/platforms" "github.com/docker/distribution/reference" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/backend" + "github.com/docker/docker/api/types/registry" "github.com/docker/docker/builder" "github.com/docker/docker/errdefs" "github.com/docker/docker/image" @@ -18,7 +18,7 @@ import ( "github.com/docker/docker/pkg/streamformatter" "github.com/docker/docker/pkg/stringid" "github.com/docker/docker/pkg/system" - "github.com/docker/docker/registry" + registrypkg "github.com/docker/docker/registry" specs "github.com/opencontainers/image-spec/specs-go/v1" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -144,14 +144,14 @@ func newROLayerForImage(img *image.Image, layerStore layer.Store) (builder.ROLay } // TODO: could this use the regular daemon PullImage ? -func (i *ImageService) pullForBuilder(ctx context.Context, name string, authConfigs map[string]types.AuthConfig, output io.Writer, platform *specs.Platform) (*image.Image, error) { +func (i *ImageService) pullForBuilder(ctx context.Context, name string, authConfigs map[string]registry.AuthConfig, output io.Writer, platform *specs.Platform) (*image.Image, error) { ref, err := reference.ParseNormalizedNamed(name) if err != nil { return nil, err } ref = reference.TagNameOnly(ref) - pullRegistryAuth := &types.AuthConfig{} + pullRegistryAuth := ®istry.AuthConfig{} if len(authConfigs) > 0 { // The request came with a full auth config, use it repoInfo, err := i.registryService.ResolveRepository(ref) @@ -159,7 +159,7 @@ func (i *ImageService) pullForBuilder(ctx context.Context, name string, authConf return nil, err } - resolvedConfig := registry.ResolveAuthConfig(authConfigs, repoInfo.Index) + resolvedConfig := registrypkg.ResolveAuthConfig(authConfigs, repoInfo.Index) pullRegistryAuth = &resolvedConfig } diff --git a/daemon/images/image_pull.go b/daemon/images/image_pull.go index 596a43b3a9..e6efd90fbf 100644 --- a/daemon/images/image_pull.go +++ b/daemon/images/image_pull.go @@ -10,7 +10,7 @@ import ( "github.com/containerd/containerd/namespaces" dist "github.com/docker/distribution" "github.com/docker/distribution/reference" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/registry" "github.com/docker/docker/distribution" progressutils "github.com/docker/docker/distribution/utils" "github.com/docker/docker/errdefs" @@ -24,7 +24,7 @@ import ( // PullImage initiates a pull operation. image is the repository name to pull, and // tag may be either empty, or indicate a specific tag to pull. -func (i *ImageService) PullImage(ctx context.Context, image, tag string, platform *specs.Platform, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error { +func (i *ImageService) PullImage(ctx context.Context, image, tag string, platform *specs.Platform, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error { start := time.Now() // Special case: "pull -a" may send an image name with a // trailing :. This is ugly, but let's not break API @@ -77,7 +77,7 @@ func (i *ImageService) PullImage(ctx context.Context, image, tag string, platfor return nil } -func (i *ImageService) pullImageWithReference(ctx context.Context, ref reference.Named, platform *specs.Platform, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error { +func (i *ImageService) pullImageWithReference(ctx context.Context, ref reference.Named, platform *specs.Platform, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error { // Include a buffer so that slow client connections don't affect // transfer performance. progressChan := make(chan progress.Progress, 100) @@ -132,7 +132,7 @@ func (i *ImageService) pullImageWithReference(ctx context.Context, ref reference } // GetRepository returns a repository from the registry. -func (i *ImageService) GetRepository(ctx context.Context, ref reference.Named, authConfig *types.AuthConfig) (dist.Repository, error) { +func (i *ImageService) GetRepository(ctx context.Context, ref reference.Named, authConfig *registry.AuthConfig) (dist.Repository, error) { return distribution.GetRepository(ctx, ref, &distribution.ImagePullConfig{ Config: distribution.Config{ AuthConfig: authConfig, diff --git a/daemon/images/image_push.go b/daemon/images/image_push.go index 302ffd8eec..1bc1867291 100644 --- a/daemon/images/image_push.go +++ b/daemon/images/image_push.go @@ -7,14 +7,14 @@ import ( "github.com/docker/distribution/manifest/schema2" "github.com/docker/distribution/reference" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/registry" "github.com/docker/docker/distribution" progressutils "github.com/docker/docker/distribution/utils" "github.com/docker/docker/pkg/progress" ) // PushImage initiates a push operation on the repository named localName. -func (i *ImageService) PushImage(ctx context.Context, image, tag string, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error { +func (i *ImageService) PushImage(ctx context.Context, image, tag string, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error { start := time.Now() ref, err := reference.ParseNormalizedNamed(image) if err != nil { diff --git a/daemon/images/image_search.go b/daemon/images/image_search.go index d991ce837c..86b897964c 100644 --- a/daemon/images/image_search.go +++ b/daemon/images/image_search.go @@ -4,9 +4,8 @@ import ( "context" "strconv" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" - registrytypes "github.com/docker/docker/api/types/registry" + "github.com/docker/docker/api/types/registry" "github.com/docker/docker/dockerversion" ) @@ -22,8 +21,8 @@ var acceptedSearchFilterTags = map[string]bool{ // TODO: this could be implemented in a registry service instead of the image // service. func (i *ImageService) SearchRegistryForImages(ctx context.Context, searchFilters filters.Args, term string, limit int, - authConfig *types.AuthConfig, - headers map[string][]string) (*registrytypes.SearchResults, error) { + authConfig *registry.AuthConfig, + headers map[string][]string) (*registry.SearchResults, error) { if err := searchFilters.Validate(acceptedSearchFilterTags); err != nil { return nil, err @@ -63,7 +62,7 @@ func (i *ImageService) SearchRegistryForImages(ctx context.Context, searchFilter return nil, err } - filteredResults := []registrytypes.SearchResult{} + filteredResults := []registry.SearchResult{} for _, result := range unfilteredResult.Results { if searchFilters.Contains("is-automated") { if isAutomated != result.IsAutomated { @@ -83,7 +82,7 @@ func (i *ImageService) SearchRegistryForImages(ctx context.Context, searchFilter filteredResults = append(filteredResults, result) } - return ®istrytypes.SearchResults{ + return ®istry.SearchResults{ Query: unfilteredResult.Query, NumResults: len(filteredResults), Results: filteredResults, diff --git a/daemon/images/image_search_test.go b/daemon/images/image_search_test.go index d45bdcba5b..115793d719 100644 --- a/daemon/images/image_search_test.go +++ b/daemon/images/image_search_test.go @@ -5,27 +5,26 @@ import ( "errors" "testing" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" - registrytypes "github.com/docker/docker/api/types/registry" + "github.com/docker/docker/api/types/registry" "github.com/docker/docker/errdefs" - "github.com/docker/docker/registry" + registrypkg "github.com/docker/docker/registry" "gotest.tools/v3/assert" ) type fakeService struct { - registry.Service + registrypkg.Service shouldReturnError bool term string - results []registrytypes.SearchResult + results []registry.SearchResult } -func (s *fakeService) Search(ctx context.Context, term string, limit int, authConfig *types.AuthConfig, userAgent string, headers map[string][]string) (*registrytypes.SearchResults, error) { +func (s *fakeService) Search(ctx context.Context, term string, limit int, authConfig *registry.AuthConfig, userAgent string, headers map[string][]string) (*registry.SearchResults, error) { if s.shouldReturnError { return nil, errdefs.Unknown(errors.New("search unknown error")) } - return ®istrytypes.SearchResults{ + return ®istry.SearchResults{ Query: s.term, NumResults: len(s.results), Results: s.results, @@ -104,23 +103,23 @@ func TestSearchRegistryForImages(t *testing.T) { successCases := []struct { name string filtersArgs filters.Args - registryResults []registrytypes.SearchResult - expectedResults []registrytypes.SearchResult + registryResults []registry.SearchResult + expectedResults []registry.SearchResult }{ { name: "empty results", - registryResults: []registrytypes.SearchResult{}, - expectedResults: []registrytypes.SearchResult{}, + registryResults: []registry.SearchResult{}, + expectedResults: []registry.SearchResult{}, }, { name: "no filter", - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name", Description: "description", @@ -130,25 +129,25 @@ func TestSearchRegistryForImages(t *testing.T) { { name: "is-automated=true, no results", filtersArgs: filters.NewArgs(filters.Arg("is-automated", "true")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", }, }, - expectedResults: []registrytypes.SearchResult{}, + expectedResults: []registry.SearchResult{}, }, { name: "is-automated=true", filtersArgs: filters.NewArgs(filters.Arg("is-automated", "true")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", IsAutomated: true, }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name", Description: "description", @@ -159,26 +158,26 @@ func TestSearchRegistryForImages(t *testing.T) { { name: "is-automated=false, no results", filtersArgs: filters.NewArgs(filters.Arg("is-automated", "false")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", IsAutomated: true, }, }, - expectedResults: []registrytypes.SearchResult{}, + expectedResults: []registry.SearchResult{}, }, { name: "is-automated=false", filtersArgs: filters.NewArgs(filters.Arg("is-automated", "false")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", IsAutomated: false, }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name", Description: "description", @@ -189,25 +188,25 @@ func TestSearchRegistryForImages(t *testing.T) { { name: "is-official=true, no results", filtersArgs: filters.NewArgs(filters.Arg("is-official", "true")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", }, }, - expectedResults: []registrytypes.SearchResult{}, + expectedResults: []registry.SearchResult{}, }, { name: "is-official=true", filtersArgs: filters.NewArgs(filters.Arg("is-official", "true")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", IsOfficial: true, }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name", Description: "description", @@ -218,26 +217,26 @@ func TestSearchRegistryForImages(t *testing.T) { { name: "is-official=false, no results", filtersArgs: filters.NewArgs(filters.Arg("is-official", "false")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", IsOfficial: true, }, }, - expectedResults: []registrytypes.SearchResult{}, + expectedResults: []registry.SearchResult{}, }, { name: "is-official=false", filtersArgs: filters.NewArgs(filters.Arg("is-official", "false")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", IsOfficial: false, }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name", Description: "description", @@ -248,14 +247,14 @@ func TestSearchRegistryForImages(t *testing.T) { { name: "stars=0", filtersArgs: filters.NewArgs(filters.Arg("stars", "0")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", StarCount: 0, }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name", Description: "description", @@ -266,19 +265,19 @@ func TestSearchRegistryForImages(t *testing.T) { { name: "stars=0, no results", filtersArgs: filters.NewArgs(filters.Arg("stars", "1")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name", Description: "description", StarCount: 0, }, }, - expectedResults: []registrytypes.SearchResult{}, + expectedResults: []registry.SearchResult{}, }, { name: "stars=1", filtersArgs: filters.NewArgs(filters.Arg("stars", "1")), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name0", Description: "description0", @@ -290,7 +289,7 @@ func TestSearchRegistryForImages(t *testing.T) { StarCount: 1, }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name1", Description: "description1", @@ -305,7 +304,7 @@ func TestSearchRegistryForImages(t *testing.T) { filters.Arg("is-official", "true"), filters.Arg("is-automated", "true"), ), - registryResults: []registrytypes.SearchResult{ + registryResults: []registry.SearchResult{ { Name: "name0", Description: "description0", @@ -335,7 +334,7 @@ func TestSearchRegistryForImages(t *testing.T) { IsAutomated: true, }, }, - expectedResults: []registrytypes.SearchResult{ + expectedResults: []registry.SearchResult{ { Name: "name3", Description: "description3",