Commit 47111001 authored by Toon Claes's avatar Toon Claes

Always run CleanUp before writing the git config

parent 4908e4b3
...@@ -144,7 +144,6 @@ module Gitlab ...@@ -144,7 +144,6 @@ module Gitlab
return unless project return unless project
project.cleanup_repository
migration_class.new.safe_perform_one(project, retry_count) migration_class.new.safe_perform_one(project, retry_count)
end end
end end
...@@ -178,6 +177,7 @@ module Gitlab ...@@ -178,6 +177,7 @@ module Gitlab
end end
def perform_one(project) def perform_one(project)
project.cleanup_repository
project.add_fullpath_config project.add_fullpath_config
end end
end end
...@@ -192,6 +192,7 @@ module Gitlab ...@@ -192,6 +192,7 @@ module Gitlab
end end
def perform_one(project) def perform_one(project)
project.cleanup_repository
project.remove_fullpath_config project.remove_fullpath_config
end end
end end
......
...@@ -46,10 +46,12 @@ describe Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig, :migr ...@@ -46,10 +46,12 @@ describe Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig, :migr
projects.create!(namespace_id: subgroup.id, name: 'buzz', path: 'buzz', storage_version: 1) projects.create!(namespace_id: subgroup.id, name: 'buzz', path: 'buzz', storage_version: 1)
expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service| expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service|
allow(repository_service).to receive(:cleanup)
expect(repository_service).to receive(:set_config).with('gitlab.fullpath' => 'foo/bar/baz') expect(repository_service).to receive(:set_config).with('gitlab.fullpath' => 'foo/bar/baz')
end end
expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service| expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service|
allow(repository_service).to receive(:cleanup)
expect(repository_service).to receive(:set_config).with('gitlab.fullpath' => 'foo/bar/buzz') expect(repository_service).to receive(:set_config).with('gitlab.fullpath' => 'foo/bar/buzz')
end end
...@@ -65,8 +67,10 @@ describe Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig, :migr ...@@ -65,8 +67,10 @@ describe Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig, :migr
it 'asks the gitaly client to set config' do it 'asks the gitaly client to set config' do
projects.create!(namespace_id: subgroup.id, name: 'baz', path: 'baz') projects.create!(namespace_id: subgroup.id, name: 'baz', path: 'baz')
expect_any_instance_of(Gitlab::GitalyClient::RepositoryService) expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service|
.to receive(:delete_config).with(['gitlab.fullpath']) allow(repository_service).to receive(:cleanup)
expect(repository_service).to receive(:delete_config).with(['gitlab.fullpath'])
end
migrate migrate
end end
......
...@@ -20,21 +20,19 @@ describe BackfillStoreProjectFullPathInRepo, :migration do ...@@ -20,21 +20,19 @@ describe BackfillStoreProjectFullPathInRepo, :migration do
describe '#up' do describe '#up' do
shared_examples_for 'writes the full path to git config' do shared_examples_for 'writes the full path to git config' do
let(:repository_service) { spy(:repository_service) }
def stub_repository_service
allow(Gitlab::GitalyClient::RepositoryService).to receive(:new).and_return(repository_service)
end
it 'writes the git config' do it 'writes the git config' do
expect_any_instance_of(Gitlab::GitalyClient::RepositoryService) expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service|
.to receive(:set_config).with('gitlab.fullpath' => expected_path) allow(repository_service).to receive(:cleanup)
expect(repository_service).to receive(:set_config).with('gitlab.fullpath' => expected_path)
end
migration.up migration.up
end end
it 'retries in case of failure' do it 'retries in case of failure' do
stub_repository_service repository_service = spy(:repository_service)
allow(Gitlab::GitalyClient::RepositoryService).to receive(:new).and_return(repository_service)
allow(repository_service).to receive(:set_config).and_raise(GRPC::BadStatus, 'Retry me') allow(repository_service).to receive(:set_config).and_raise(GRPC::BadStatus, 'Retry me')
expect(repository_service).to receive(:set_config).exactly(3).times expect(repository_service).to receive(:set_config).exactly(3).times
...@@ -42,11 +40,11 @@ describe BackfillStoreProjectFullPathInRepo, :migration do ...@@ -42,11 +40,11 @@ describe BackfillStoreProjectFullPathInRepo, :migration do
migration.up migration.up
end end
it 'cleans up repository in case of failure' do it 'cleans up repository before writing the config' do
stub_repository_service expect_next_instance_of(Gitlab::GitalyClient::RepositoryService) do |repository_service|
expect(repository_service).to receive(:cleanup).ordered
allow(repository_service).to receive(:set_config).and_raise(GRPC::BadStatus, 'Retry me') expect(repository_service).to receive(:set_config).ordered
expect(repository_service).to receive(:cleanup) end
migration.up migration.up
end end
......
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