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):
|
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):
|
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):
|
def _conduct_repo_search(username, query, limit=25, page=1):
|
||||||
""" Finds matching repositories. """
|
""" Finds matching repositories. """
|
||||||
|
only_public = username is None
|
||||||
|
|
||||||
def can_read(repo):
|
def can_read(repo):
|
||||||
if repo.is_public:
|
if repo.is_public:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
if only_public:
|
||||||
|
return False
|
||||||
|
|
||||||
return ReadRepositoryPermission(repo.namespace_user.username, repo.name).can()
|
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
|
# 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
|
_MAX_PAGE_COUNT = 5
|
||||||
page = min(page, _MAX_PAGE_COUNT)
|
page = min(page, _MAX_PAGE_COUNT)
|
||||||
|
|
||||||
only_public = username is None
|
|
||||||
|
|
||||||
if query:
|
if query:
|
||||||
matching_repos = model.get_sorted_matching_repositories(query, only_public, can_read,
|
matching_repos = model.get_sorted_matching_repositories(query, only_public, can_read,
|
||||||
limit=limit*_MAX_PAGE_COUNT)
|
limit=limit*_MAX_PAGE_COUNT)
|
||||||
|
|
Reference in a new issue