diff options
author | Gabriel Mazetto <brodock@gmail.com> | 2019-01-15 04:30:55 +0100 |
---|---|---|
committer | Gabriel Mazetto <brodock@gmail.com> | 2019-01-25 20:26:35 +0100 |
commit | cf52488ccba8913027334c16892ee1fce1241169 (patch) | |
tree | e7d0b15ba32d9a984a86a9c356c5382647123e48 | |
parent | c2c34eba62f26bed8cad8b07934e14b4519eef7c (diff) | |
download | gitlab-ce-cf52488ccba8913027334c16892ee1fce1241169.tar.gz |
Move MigrationService to HashedStorage module
This is part of the refactor to include a RollbackService into
HashedStorage module
-rw-r--r-- | app/services/projects/after_rename_service.rb | 2 | ||||
-rw-r--r-- | app/services/projects/hashed_storage/migration_service.rb | 29 | ||||
-rw-r--r-- | app/services/projects/hashed_storage_migration_service.rb | 27 | ||||
-rw-r--r-- | app/workers/project_migrate_hashed_storage_worker.rb | 2 | ||||
-rw-r--r-- | spec/services/projects/after_rename_service_spec.rb | 4 | ||||
-rw-r--r-- | spec/services/projects/hashed_storage/migration_service_spec.rb (renamed from spec/services/projects/hashed_storage_migration_service_spec.rb) | 2 | ||||
-rw-r--r-- | spec/workers/project_migrate_hashed_storage_worker_spec.rb | 8 |
7 files changed, 38 insertions, 36 deletions
diff --git a/app/services/projects/after_rename_service.rb b/app/services/projects/after_rename_service.rb index c3cd9d1ea4a..fafdecb3222 100644 --- a/app/services/projects/after_rename_service.rb +++ b/app/services/projects/after_rename_service.rb @@ -62,7 +62,7 @@ module Projects def rename_or_migrate_repository! success = if migrate_to_hashed_storage? - ::Projects::HashedStorageMigrationService + ::Projects::HashedStorage::MigrationService .new(project, full_path_before) .execute else diff --git a/app/services/projects/hashed_storage/migration_service.rb b/app/services/projects/hashed_storage/migration_service.rb new file mode 100644 index 00000000000..140c35bdd52 --- /dev/null +++ b/app/services/projects/hashed_storage/migration_service.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Projects + module HashedStorage + class MigrationService < BaseService + attr_reader :logger, :old_disk_path + + def initialize(project, old_disk_path, logger: nil) + @project = project + @old_disk_path = old_disk_path + @logger = logger || Rails.logger + end + + def execute + # Migrate repository from Legacy to Hashed Storage + unless project.hashed_storage?(:repository) + return unless HashedStorage::MigrateRepositoryService.new(project, old_disk_path, logger: logger).execute + end + + # Migrate attachments from Legacy to Hashed Storage + unless project.hashed_storage?(:attachments) + HashedStorage::MigrateAttachmentsService.new(project, old_disk_path, logger: logger).execute + end + + true + end + end + end +end diff --git a/app/services/projects/hashed_storage_migration_service.rb b/app/services/projects/hashed_storage_migration_service.rb deleted file mode 100644 index a0e734005f8..00000000000 --- a/app/services/projects/hashed_storage_migration_service.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -module Projects - class HashedStorageMigrationService < BaseService - attr_reader :logger, :old_disk_path - - def initialize(project, old_disk_path, logger: nil) - @project = project - @old_disk_path = old_disk_path - @logger = logger || Rails.logger - end - - def execute - # Migrate repository from Legacy to Hashed Storage - unless project.hashed_storage?(:repository) - return unless HashedStorage::MigrateRepositoryService.new(project, old_disk_path, logger: logger).execute - end - - # Migrate attachments from Legacy to Hashed Storage - unless project.hashed_storage?(:attachments) - HashedStorage::MigrateAttachmentsService.new(project, old_disk_path, logger: logger).execute - end - - true - end - end -end diff --git a/app/workers/project_migrate_hashed_storage_worker.rb b/app/workers/project_migrate_hashed_storage_worker.rb index 4c6339f7701..c3cdf102382 100644 --- a/app/workers/project_migrate_hashed_storage_worker.rb +++ b/app/workers/project_migrate_hashed_storage_worker.rb @@ -12,7 +12,7 @@ class ProjectMigrateHashedStorageWorker uuid = lease_for(project_id).try_obtain if uuid - ::Projects::HashedStorageMigrationService.new(project, old_disk_path || project.full_path, logger: logger).execute + ::Projects::HashedStorage::MigrationService.new(project, old_disk_path || project.full_path, logger: logger).execute else false end diff --git a/spec/services/projects/after_rename_service_spec.rb b/spec/services/projects/after_rename_service_spec.rb index bc5366a3339..b8055a285f2 100644 --- a/spec/services/projects/after_rename_service_spec.rb +++ b/spec/services/projects/after_rename_service_spec.rb @@ -101,10 +101,10 @@ describe Projects::AfterRenameService do end context 'with hashed storage upgrade when renaming enabled' do - it 'calls HashedStorageMigrationService with correct options' do + it 'calls HashedStorage::MigrationService with correct options' do stub_application_setting(hashed_storage_enabled: true) - expect_next_instance_of(::Projects::HashedStorageMigrationService) do |service| + expect_next_instance_of(::Projects::HashedStorage::MigrationService) do |service| expect(service).to receive(:execute).and_return(true) end diff --git a/spec/services/projects/hashed_storage_migration_service_spec.rb b/spec/services/projects/hashed_storage/migration_service_spec.rb index 5368c3828dd..b4647586363 100644 --- a/spec/services/projects/hashed_storage_migration_service_spec.rb +++ b/spec/services/projects/hashed_storage/migration_service_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Projects::HashedStorageMigrationService do +describe Projects::HashedStorage::MigrationService do let(:project) { create(:project, :empty_repo, :wiki_repo, :legacy_storage) } let(:logger) { double } diff --git a/spec/workers/project_migrate_hashed_storage_worker_spec.rb b/spec/workers/project_migrate_hashed_storage_worker_spec.rb index 3703320418b..18470923316 100644 --- a/spec/workers/project_migrate_hashed_storage_worker_spec.rb +++ b/spec/workers/project_migrate_hashed_storage_worker_spec.rb @@ -9,7 +9,7 @@ describe ProjectMigrateHashedStorageWorker, :clean_gitlab_redis_shared_state do let(:lease_timeout) { ProjectMigrateHashedStorageWorker::LEASE_TIMEOUT } it 'skips when project no longer exists' do - expect(::Projects::HashedStorageMigrationService).not_to receive(:new) + expect(::Projects::HashedStorage::MigrationService).not_to receive(:new) subject.perform(-1) end @@ -17,7 +17,7 @@ describe ProjectMigrateHashedStorageWorker, :clean_gitlab_redis_shared_state do it 'skips when project is pending delete' do pending_delete_project = create(:project, :empty_repo, pending_delete: true) - expect(::Projects::HashedStorageMigrationService).not_to receive(:new) + expect(::Projects::HashedStorage::MigrationService).not_to receive(:new) subject.perform(pending_delete_project.id) end @@ -27,7 +27,7 @@ describe ProjectMigrateHashedStorageWorker, :clean_gitlab_redis_shared_state do migration_service = spy - allow(::Projects::HashedStorageMigrationService) + allow(::Projects::HashedStorage::MigrationService) .to receive(:new).with(project, project.full_path, logger: subject.logger) .and_return(migration_service) @@ -39,7 +39,7 @@ describe ProjectMigrateHashedStorageWorker, :clean_gitlab_redis_shared_state do it 'skips when dont have lease when dont have exclusive lease' do stub_exclusive_lease_taken(lease_key, timeout: lease_timeout) - expect(::Projects::HashedStorageMigrationService).not_to receive(:new) + expect(::Projects::HashedStorage::MigrationService).not_to receive(:new) subject.perform(project.id) end |