Skip to content
Snippets Groups Projects
Unverified Commit 29b4d657 authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg
Browse files

Moves another RPC to mandatory

This specific one isn't used on most machines, therefor low risk.

Closes https://gitlab.com/gitlab-org/gitaly/issues/944
parent 901159bb
No related branches found
No related tags found
1 merge request!10495Merge Requests - Assignee
Loading
Loading
@@ -21,7 +21,7 @@ class Repository
attr_accessor :full_path, :disk_path, :project, :is_wiki
 
delegate :ref_name_for_sha, to: :raw_repository
delegate :bundle_to_disk, :create_from_bundle, to: :raw_repository
delegate :bundle_to_disk, to: :raw_repository
 
CreateTreeError = Class.new(StandardError)
 
Loading
Loading
Loading
Loading
@@ -1158,16 +1158,7 @@ module Gitlab
end
 
def create_from_bundle(bundle_path)
gitaly_migrate(:create_repo_from_bundle) do |is_enabled|
if is_enabled
gitaly_repository_client.create_from_bundle(bundle_path)
else
run_git!(%W(clone --bare -- #{bundle_path} #{path}), chdir: nil)
self.class.create_hooks(path, File.expand_path(Gitlab.config.gitlab_shell.hooks_path))
end
end
true
gitaly_repository_client.create_from_bundle(bundle_path)
end
 
def create_from_snapshot(url, auth)
Loading
Loading
Loading
Loading
@@ -2160,43 +2160,33 @@ describe Gitlab::Git::Repository, seed_helper: true do
end
 
describe '#create_from_bundle' do
shared_examples 'creating repo from bundle' do
let(:bundle_path) { File.join(Dir.tmpdir, "repo-#{SecureRandom.hex}.bundle") }
let(:project) { create(:project) }
let(:imported_repo) { project.repository.raw }
let(:bundle_path) { File.join(Dir.tmpdir, "repo-#{SecureRandom.hex}.bundle") }
let(:project) { create(:project) }
let(:imported_repo) { project.repository.raw }
 
before do
expect(repository.bundle_to_disk(bundle_path)).to be true
end
after do
FileUtils.rm_rf(bundle_path)
end
it 'creates a repo from a bundle file' do
expect(imported_repo).not_to exist
before do
expect(repository.bundle_to_disk(bundle_path)).to be_truthy
end
 
result = imported_repo.create_from_bundle(bundle_path)
after do
FileUtils.rm_rf(bundle_path)
end
 
expect(result).to be true
expect(imported_repo).to exist
expect { imported_repo.fsck }.not_to raise_exception
end
it 'creates a repo from a bundle file' do
expect(imported_repo).not_to exist
 
it 'creates a symlink to the global hooks dir' do
imported_repo.create_from_bundle(bundle_path)
hooks_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access { File.join(imported_repo.path, 'hooks') }
result = imported_repo.create_from_bundle(bundle_path)
 
expect(File.readlink(hooks_path)).to eq(Gitlab.config.gitlab_shell.hooks_path)
end
expect(result).to be_truthy
expect(imported_repo).to exist
expect { imported_repo.fsck }.not_to raise_exception
end
 
context 'when Gitaly create_repo_from_bundle feature is enabled' do
it_behaves_like 'creating repo from bundle'
end
it 'creates a symlink to the global hooks dir' do
imported_repo.create_from_bundle(bundle_path)
hooks_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access { File.join(imported_repo.path, 'hooks') }
 
context 'when Gitaly create_repo_from_bundle feature is disabled', :disable_gitaly do
it_behaves_like 'creating repo from bundle'
expect(File.readlink(hooks_path)).to eq(Gitlab.config.gitlab_shell.hooks_path)
end
end
 
Loading
Loading
Loading
Loading
@@ -30,7 +30,7 @@ describe Gitlab::ImportExport::RepoRestorer do
end
 
it 'restores the repo successfully' do
expect(restorer.restore).to be true
expect(restorer.restore).to be_truthy
end
 
it 'has the webhooks' do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment