diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-31 21:08:05 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-31 21:08:05 +0000 |
commit | abae8f34f377519946a91101ef7abf504454531c (patch) | |
tree | 359fab0082860b6850d4a0a492b8f12eb3d4eb0b /app/workers | |
parent | 580622bdb3c762a8e89facd8a3946881ee480442 (diff) | |
download | gitlab-ce-abae8f34f377519946a91101ef7abf504454531c.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/workers')
-rw-r--r-- | app/workers/all_queues.yml | 2 | ||||
-rw-r--r-- | app/workers/namespaces/schedule_aggregation_worker.rb | 3 | ||||
-rw-r--r-- | app/workers/project_update_repository_storage_worker.rb | 10 |
3 files changed, 13 insertions, 2 deletions
diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml index 7dc47c55a04..4c8b703d60e 100644 --- a/app/workers/all_queues.yml +++ b/app/workers/all_queues.yml @@ -919,7 +919,7 @@ :urgency: :low :resource_boundary: :unknown :weight: 1 - :idempotent: + :idempotent: true - :name: authorized_keys :feature_category: :source_code_management :has_external_dependencies: diff --git a/app/workers/namespaces/schedule_aggregation_worker.rb b/app/workers/namespaces/schedule_aggregation_worker.rb index 94343a9e378..cbf5ed44572 100644 --- a/app/workers/namespaces/schedule_aggregation_worker.rb +++ b/app/workers/namespaces/schedule_aggregation_worker.rb @@ -1,11 +1,12 @@ # frozen_string_literal: true module Namespaces - class ScheduleAggregationWorker # rubocop:disable Scalability/IdempotentWorker + class ScheduleAggregationWorker include ApplicationWorker queue_namespace :update_namespace_statistics feature_category :source_code_management + idempotent! def perform(namespace_id) return unless aggregation_schedules_table_exists? diff --git a/app/workers/project_update_repository_storage_worker.rb b/app/workers/project_update_repository_storage_worker.rb index ecee33e6421..bb40107494b 100644 --- a/app/workers/project_update_repository_storage_worker.rb +++ b/app/workers/project_update_repository_storage_worker.rb @@ -3,11 +3,21 @@ class ProjectUpdateRepositoryStorageWorker # rubocop:disable Scalability/IdempotentWorker include ApplicationWorker + SameFilesystemError = Class.new(StandardError) + feature_category :gitaly def perform(project_id, new_repository_storage_key) project = Project.find(project_id) + raise SameFilesystemError if same_filesystem?(project.repository.storage, new_repository_storage_key) + ::Projects::UpdateRepositoryStorageService.new(project).execute(new_repository_storage_key) end + + private + + def same_filesystem?(old_storage, new_storage) + Gitlab::GitalyClient.filesystem_id(old_storage) == Gitlab::GitalyClient.filesystem_id(new_storage) + end end |