Merge pull request #2363 from coreos-inc/opt-search
Small search query optimizations
This commit is contained in:
		
						commit
						2ef55a5842
					
				
					 2 changed files with 6 additions and 3 deletions
				
			
		|  | @ -393,7 +393,7 @@ def lookup_repository(repo_id): | |||
| 
 | ||||
| 
 | ||||
| def is_repository_public(repository): | ||||
|   return repository.visibility == _basequery.get_public_repo_visibility() | ||||
|   return repository.visibility_id == _basequery.get_public_repo_visibility().id | ||||
| 
 | ||||
| 
 | ||||
| def repository_is_public(namespace_name, repository_name): | ||||
|  |  | |||
|  | @ -312,10 +312,15 @@ def get_search(): | |||
| 
 | ||||
| def _conduct_repo_search(username, query, limit=25, page=1): | ||||
|   """ Finds matching repositories. """ | ||||
|   only_public = username is None | ||||
| 
 | ||||
|   def can_read(repo): | ||||
|     if repo.is_public: | ||||
|       return True | ||||
| 
 | ||||
|     if only_public: | ||||
|       return False | ||||
| 
 | ||||
|     return ReadRepositoryPermission(repo.namespace_user.username, repo.name).can() | ||||
| 
 | ||||
|   # Note: We put a max 5 page limit here. The Docker CLI doesn't seem to use the | ||||
|  | @ -326,8 +331,6 @@ def _conduct_repo_search(username, query, limit=25, page=1): | |||
|   _MAX_PAGE_COUNT = 5 | ||||
|   page = min(page, _MAX_PAGE_COUNT) | ||||
| 
 | ||||
|   only_public = username is None | ||||
| 
 | ||||
|   if query: | ||||
|     matching_repos = model.get_sorted_matching_repositories(query, only_public, can_read, | ||||
|                                                             limit=limit*_MAX_PAGE_COUNT) | ||||
|  |  | |||
		Reference in a new issue