diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-11 18:08:58 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-11 18:08:58 +0000 |
commit | 1ca9950d5f890cd8f185e1eda158b969a7244fe2 (patch) | |
tree | 6f62715938a4b2b001705c51c697609a8e0850ae /app/services/projects | |
parent | bcc77054ee9aefd1e332e04a4189390fd5a3112e (diff) | |
download | gitlab-ce-1ca9950d5f890cd8f185e1eda158b969a7244fe2.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/projects')
-rw-r--r-- | app/services/projects/create_service.rb | 8 | ||||
-rw-r--r-- | app/services/projects/propagate_service_template.rb (renamed from app/services/projects/propagate_instance_level_service.rb) | 28 |
2 files changed, 18 insertions, 18 deletions
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index 6b1fb92681a..7bf68e7d315 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -135,7 +135,7 @@ module Projects if @project.save unless @project.gitlab_project_import? - create_services_from_active_instance_level_services(@project) + create_services_from_active_templates(@project) @project.create_labels end @@ -161,9 +161,9 @@ module Projects end # rubocop: disable CodeReuse/ActiveRecord - def create_services_from_active_instance_level_services(project) - Service.where(instance: true, active: true).each do |template| - service = Service.build_from_instance(project.id, template) + def create_services_from_active_templates(project) + Service.where(template: true, active: true).each do |template| + service = Service.build_from_template(project.id, template) service.save! end end diff --git a/app/services/projects/propagate_instance_level_service.rb b/app/services/projects/propagate_service_template.rb index dc75977ba0f..6013b00b8c6 100644 --- a/app/services/projects/propagate_instance_level_service.rb +++ b/app/services/projects/propagate_service_template.rb @@ -1,38 +1,38 @@ # frozen_string_literal: true module Projects - class PropagateInstanceLevelService + class PropagateServiceTemplate BATCH_SIZE = 100 def self.propagate(*args) new(*args).propagate end - def initialize(instance_level_service) - @instance_level_service = instance_level_service + def initialize(template) + @template = template end def propagate - return unless @instance_level_service.active? + return unless @template.active? - Rails.logger.info("Propagating services for instance_level_service #{@instance_level_service.id}") # rubocop:disable Gitlab/RailsLogger + Rails.logger.info("Propagating services for template #{@template.id}") # rubocop:disable Gitlab/RailsLogger - propagate_projects_with_instance_level_service + propagate_projects_with_template end private - def propagate_projects_with_instance_level_service + def propagate_projects_with_template loop do batch = Project.uncached { project_ids_batch } - bulk_create_from_instance_level_service(batch) unless batch.empty? + bulk_create_from_template(batch) unless batch.empty? break if batch.size < BATCH_SIZE end end - def bulk_create_from_instance_level_service(batch) + def bulk_create_from_template(batch) service_list = batch.map do |project_id| service_hash.values << project_id end @@ -52,7 +52,7 @@ module Projects SELECT true FROM services WHERE services.project_id = projects.id - AND services.type = '#{@instance_level_service.type}' + AND services.type = '#{@template.type}' ) AND projects.pending_delete = false AND projects.archived = false @@ -73,9 +73,9 @@ module Projects def service_hash @service_hash ||= begin - instance_hash = @instance_level_service.as_json(methods: :type).except('id', 'instance', 'project_id') + template_hash = @template.as_json(methods: :type).except('id', 'template', 'project_id') - instance_hash.each_with_object({}) do |(key, value), service_hash| + template_hash.each_with_object({}) do |(key, value), service_hash| value = value.is_a?(Hash) ? value.to_json : value service_hash[ActiveRecord::Base.connection.quote_column_name(key)] = @@ -97,11 +97,11 @@ module Projects # rubocop: enable CodeReuse/ActiveRecord def active_external_issue_tracker? - @instance_level_service.issue_tracker? && !@instance_level_service.default + @template.issue_tracker? && !@template.default end def active_external_wiki? - @instance_level_service.type == 'ExternalWikiService' + @template.type == 'ExternalWikiService' end end end |