Repository#exists? can only be queried with Gitaly
Has been in opt out for 5 months, and within GitLab been in production for longer than that. No code needs to be migrated as this is implemented in GoLang over at Gitaly. Closes https://gitlab.com/gitlab-org/gitaly/issues/314
This commit is contained in:
parent
5beb4ddebf
commit
5cd57cf250
3 changed files with 9 additions and 22 deletions
5
changelogs/unreleased/zj-repository-exist-mandatory.yml
Normal file
5
changelogs/unreleased/zj-repository-exist-mandatory.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Repository#exists? is always executed through Gitaly
|
||||
merge_request:
|
||||
author:
|
||||
type: performance
|
|
@ -142,15 +142,7 @@ module Gitlab
|
|||
end
|
||||
|
||||
def exists?
|
||||
Gitlab::GitalyClient.migrate(:repository_exists, status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT) do |enabled|
|
||||
if enabled
|
||||
gitaly_repository_client.exists?
|
||||
else
|
||||
circuit_breaker.perform do
|
||||
File.exist?(File.join(path, 'refs'))
|
||||
end
|
||||
end
|
||||
end
|
||||
gitaly_repository_client.exists?
|
||||
end
|
||||
|
||||
# Returns an Array of branch names
|
||||
|
|
|
@ -1224,15 +1224,15 @@ describe Repository do
|
|||
end
|
||||
end
|
||||
|
||||
shared_examples 'repo exists check' do
|
||||
describe '#exists?' do
|
||||
it 'returns true when a repository exists' do
|
||||
expect(repository.exists?).to eq(true)
|
||||
expect(repository.exists?).to be(true)
|
||||
end
|
||||
|
||||
it 'returns false if no full path can be constructed' do
|
||||
allow(repository).to receive(:full_path).and_return(nil)
|
||||
|
||||
expect(repository.exists?).to eq(false)
|
||||
expect(repository.exists?).to be(false)
|
||||
end
|
||||
|
||||
context 'with broken storage', :broken_storage do
|
||||
|
@ -1242,16 +1242,6 @@ describe Repository do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#exists?' do
|
||||
context 'when repository_exists is disabled' do
|
||||
it_behaves_like 'repo exists check'
|
||||
end
|
||||
|
||||
context 'when repository_exists is enabled', :skip_gitaly_mock do
|
||||
it_behaves_like 'repo exists check'
|
||||
end
|
||||
end
|
||||
|
||||
describe '#has_visible_content?' do
|
||||
before do
|
||||
# If raw_repository.has_visible_content? gets called more than once then
|
||||
|
|
Loading…
Reference in a new issue