forked from TrueCloudLab/distribution
Merge pull request #16509 from HuKeping/search-problem
Fix docker search problem
This commit is contained in:
commit
60edb40c29
2 changed files with 27 additions and 6 deletions
|
@ -300,14 +300,17 @@ func splitReposName(reposName string) (string, string) {
|
|||
}
|
||||
|
||||
// NewRepositoryInfo validates and breaks down a repository name into a RepositoryInfo
|
||||
func (config *ServiceConfig) NewRepositoryInfo(reposName string) (*RepositoryInfo, error) {
|
||||
func (config *ServiceConfig) NewRepositoryInfo(reposName string, bySearch bool) (*RepositoryInfo, error) {
|
||||
if err := validateNoSchema(reposName); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
indexName, remoteName := splitReposName(reposName)
|
||||
if err := validateRemoteName(remoteName); err != nil {
|
||||
return nil, err
|
||||
|
||||
if !bySearch {
|
||||
if err := validateRemoteName(remoteName); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
repoInfo := &RepositoryInfo{
|
||||
|
@ -359,7 +362,18 @@ func (repoInfo *RepositoryInfo) GetSearchTerm() string {
|
|||
// ParseRepositoryInfo performs the breakdown of a repository name into a RepositoryInfo, but
|
||||
// lacks registry configuration.
|
||||
func ParseRepositoryInfo(reposName string) (*RepositoryInfo, error) {
|
||||
return emptyServiceConfig.NewRepositoryInfo(reposName)
|
||||
return emptyServiceConfig.NewRepositoryInfo(reposName, false)
|
||||
}
|
||||
|
||||
// ParseIndexInfo will use repository name to get back an indexInfo.
|
||||
func ParseIndexInfo(reposName string) (*IndexInfo, error) {
|
||||
indexName, _ := splitReposName(reposName)
|
||||
|
||||
indexInfo, err := emptyServiceConfig.NewIndexInfo(indexName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return indexInfo, nil
|
||||
}
|
||||
|
||||
// NormalizeLocalName transforms a repository name into a normalize LocalName
|
||||
|
|
|
@ -54,7 +54,8 @@ func (s *Service) Auth(authConfig *cliconfig.AuthConfig) (string, error) {
|
|||
// Search queries the public registry for images matching the specified
|
||||
// search terms, and returns the results.
|
||||
func (s *Service) Search(term string, authConfig *cliconfig.AuthConfig, headers map[string][]string) (*SearchResults, error) {
|
||||
repoInfo, err := s.ResolveRepository(term)
|
||||
|
||||
repoInfo, err := s.ResolveRepositoryBySearch(term)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -75,7 +76,13 @@ func (s *Service) Search(term string, authConfig *cliconfig.AuthConfig, headers
|
|||
// ResolveRepository splits a repository name into its components
|
||||
// and configuration of the associated registry.
|
||||
func (s *Service) ResolveRepository(name string) (*RepositoryInfo, error) {
|
||||
return s.Config.NewRepositoryInfo(name)
|
||||
return s.Config.NewRepositoryInfo(name, false)
|
||||
}
|
||||
|
||||
// ResolveRepositoryBySearch splits a repository name into its components
|
||||
// and configuration of the associated registry.
|
||||
func (s *Service) ResolveRepositoryBySearch(name string) (*RepositoryInfo, error) {
|
||||
return s.Config.NewRepositoryInfo(name, true)
|
||||
}
|
||||
|
||||
// ResolveIndex takes indexName and returns index info
|
||||
|
|
Loading…
Reference in a new issue