when rollingback repository migration, toggle readonly mode back

This commit is contained in:
Gabriel Mazetto 2017-11-21 16:38:32 +01:00
parent 9fd31eb469
commit 4b87c1afaa
3 changed files with 8 additions and 6 deletions

View file

@ -22,8 +22,8 @@ module Projects
private
def move_folder!(old_path, new_path)
unless File.exist?(old_path)
logger.info("Skipped attachments migration from '#{old_path}' to '#{new_path}', source path doesn't exist (PROJECT_ID=#{project.id})")
unless File.directory?(old_path)
logger.info("Skipped attachments migration from '#{old_path}' to '#{new_path}', source path doesn't exist or is not a directory (PROJECT_ID=#{project.id})")
return
end

View file

@ -29,7 +29,7 @@ module Projects
unless result
rollback_folder_move
return result
project.storage_version = nil
end
project.repository_read_only = false

View file

@ -48,18 +48,20 @@ describe Projects::HashedStorage::MigrateRepositoryService do
expect(gitlab_shell.exists?(project.repository_storage_path, "#{hashed_storage.disk_path}.git")).to be_falsey
expect(gitlab_shell.exists?(project.repository_storage_path, "#{hashed_storage.disk_path}.wiki.git")).to be_falsey
expect(project.repository_read_only?).to be_falsey
end
context 'when rollback fails' do
before do
from_name = legacy_storage.disk_path
to_name = hashed_storage.disk_path
let(:from_name) { legacy_storage.disk_path }
let(:to_name) { hashed_storage.disk_path }
before do
hashed_storage.ensure_storage_path_exists
gitlab_shell.mv_repository(project.repository_storage_path, from_name, to_name)
end
it 'does not try to move nil repository over hashed' do
expect(gitlab_shell).not_to receive(:mv_repository).with(project.repository_storage_path, from_name, to_name)
expect_move_repository("#{project.disk_path}.wiki", "#{hashed_storage.disk_path}.wiki")
service.execute