summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Mazetto <brodock@gmail.com>2017-11-21 16:38:32 +0100
committerGabriel Mazetto <brodock@gmail.com>2017-11-23 14:19:36 +0100
commit4b87c1afaa652d72fa6aeeb4fe52fa3883e2f4c8 (patch)
tree31a1eb3ae197d588b16401d6d03147b900530433
parent9fd31eb469de5099f7a7b44840d7930bc3c42bbe (diff)
downloadgitlab-ce-4b87c1afaa652d72fa6aeeb4fe52fa3883e2f4c8.tar.gz
when rollingback repository migration, toggle readonly mode back
-rw-r--r--app/services/projects/hashed_storage/migrate_attachments_service.rb4
-rw-r--r--app/services/projects/hashed_storage/migrate_repository_service.rb2
-rw-r--r--spec/services/projects/hashed_storage/migrate_repository_service_spec.rb8
3 files changed, 8 insertions, 6 deletions
diff --git a/app/services/projects/hashed_storage/migrate_attachments_service.rb b/app/services/projects/hashed_storage/migrate_attachments_service.rb
index 26026899ebe..b58b6f57ed7 100644
--- a/app/services/projects/hashed_storage/migrate_attachments_service.rb
+++ b/app/services/projects/hashed_storage/migrate_attachments_service.rb
@@ -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
diff --git a/app/services/projects/hashed_storage/migrate_repository_service.rb b/app/services/projects/hashed_storage/migrate_repository_service.rb
index c03db5cc1b9..da43877a185 100644
--- a/app/services/projects/hashed_storage/migrate_repository_service.rb
+++ b/app/services/projects/hashed_storage/migrate_repository_service.rb
@@ -29,7 +29,7 @@ module Projects
unless result
rollback_folder_move
- return result
+ project.storage_version = nil
end
project.repository_read_only = false
diff --git a/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb b/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb
index ef91d21cf20..3a3e47fd9c0 100644
--- a/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb
+++ b/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb
@@ -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