diff options
Diffstat (limited to 'app/workers/project_update_repository_storage_worker.rb')
-rw-r--r-- | app/workers/project_update_repository_storage_worker.rb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/app/workers/project_update_repository_storage_worker.rb b/app/workers/project_update_repository_storage_worker.rb index ecee33e6421..5c1a8062f12 100644 --- a/app/workers/project_update_repository_storage_worker.rb +++ b/app/workers/project_update_repository_storage_worker.rb @@ -5,9 +5,19 @@ class ProjectUpdateRepositoryStorageWorker # rubocop:disable Scalability/Idempot feature_category :gitaly - def perform(project_id, new_repository_storage_key) - project = Project.find(project_id) + def perform(project_id, new_repository_storage_key, repository_storage_move_id = nil) + repository_storage_move = + if repository_storage_move_id + ProjectRepositoryStorageMove.find(repository_storage_move_id) + else + # maintain compatibility with workers queued before release + project = Project.find(project_id) + project.repository_storage_moves.create!( + source_storage_name: project.repository_storage, + destination_storage_name: new_repository_storage_key + ) + end - ::Projects::UpdateRepositoryStorageService.new(project).execute(new_repository_storage_key) + ::Projects::UpdateRepositoryStorageService.new(repository_storage_move).execute end end |