Commit 5cd57cf2 authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg

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
parent 5beb4dde
---
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
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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment