diff --git a/graph/pull.go b/graph/pull.go index b2a9ef1780..051d9c857f 100644 --- a/graph/pull.go +++ b/graph/pull.go @@ -142,7 +142,6 @@ func makeMirrorRepoInfo(repoInfo *registry.RepositoryInfo, mirror string) *regis func configureV2Mirror(repoInfo *registry.RepositoryInfo, s *registry.Service) (*registry.Endpoint, *registry.RepositoryInfo, error) { mirrors := repoInfo.Index.Mirrors - if len(mirrors) == 0 { // no mirrors configured return nil, nil, nil @@ -151,13 +150,11 @@ func configureV2Mirror(repoInfo *registry.RepositoryInfo, s *registry.Service) ( v1MirrorCount := 0 var v2MirrorEndpoint *registry.Endpoint var v2MirrorRepoInfo *registry.RepositoryInfo - var lastErr error for _, mirror := range mirrors { mirrorRepoInfo := makeMirrorRepoInfo(repoInfo, mirror) endpoint, err := registry.NewEndpoint(mirrorRepoInfo.Index, nil) if err != nil { logrus.Errorf("Unable to create endpoint for %s: %s", mirror, err) - lastErr = err continue } if endpoint.Version == 2 { @@ -182,9 +179,11 @@ func configureV2Mirror(repoInfo *registry.RepositoryInfo, s *registry.Service) ( return v2MirrorEndpoint, v2MirrorRepoInfo, nil } if v2MirrorEndpoint != nil && v1MirrorCount > 0 { - lastErr = fmt.Errorf("v1 and v2 mirrors configured") + return nil, nil, fmt.Errorf("v1 and v2 mirrors configured") } - return nil, nil, lastErr + // No endpoint could be established with the given mirror configurations + // Fallback to pulling from the hub as per v1 behavior. + return nil, nil, nil } func (s *TagStore) pullFromV2Mirror(mirrorEndpoint *registry.Endpoint, repoInfo *registry.RepositoryInfo,