summaryrefslogtreecommitdiff
path: root/app/workers
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-31 21:08:05 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-31 21:08:05 +0000
commitabae8f34f377519946a91101ef7abf504454531c (patch)
tree359fab0082860b6850d4a0a492b8f12eb3d4eb0b /app/workers
parent580622bdb3c762a8e89facd8a3946881ee480442 (diff)
downloadgitlab-ce-abae8f34f377519946a91101ef7abf504454531c.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/all_queues.yml2
-rw-r--r--app/workers/namespaces/schedule_aggregation_worker.rb3
-rw-r--r--app/workers/project_update_repository_storage_worker.rb10
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