diff options
author | James Lopez <james@jameslopez.es> | 2017-05-05 19:01:33 +0300 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2017-05-05 19:01:33 +0300 |
commit | 6ecf16b8f70335e1e6868b7c918cd031f5eb2f8d (patch) | |
tree | e57683de43fa63c278929bcba679d1077906a2fe /app/services | |
parent | ce418036c763219df8239632f71ef0e9782be7ea (diff) |
refactor code based on feedback
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/projects/propagate_service_template.rb (renamed from app/services/projects/propagate_service.rb) | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/app/services/projects/propagate_service.rb b/app/services/projects/propagate_service_template.rb index f4fae478609..32ad68673ac 100644 --- a/app/services/projects/propagate_service.rb +++ b/app/services/projects/propagate_service_template.rb @@ -1,5 +1,5 @@ module Projects - class PropagateService + class PropagateServiceTemplate BATCH_SIZE = 100 def self.propagate(*args) @@ -36,9 +36,7 @@ module Projects end Project.transaction do - Gitlab::SQL::BulkInsert.new(service_hash.keys + ['project_id'], - service_list, - 'services').execute + bulk_insert_services(service_hash.keys + ['project_id'], service_list) run_callbacks(batch) end end @@ -54,11 +52,22 @@ module Projects WHERE services.project_id = projects.id AND services.type = '#{@template.type}' ) + AND projects.pending_delete = false + AND projects.archived = false LIMIT #{BATCH_SIZE} SQL ) end + def bulk_insert_services(columns, values_array) + ActiveRecord::Base.connection.execute( + <<-SQL.strip_heredoc + INSERT INTO services (#{columns.join(', ')}) + VALUES #{values_array.map { |tuple| "(#{tuple.join(', ')})" }.join(', ')} + SQL + ) + end + def service_hash @service_hash ||= begin @@ -84,11 +93,11 @@ module Projects end def active_external_issue_tracker? - @template['category'] == 'issue_tracker' && @template['active'] && !@template['default'] + @template.category == :issue_tracker && !@template.default end def active_external_wiki? - @template['type'] == 'ExternalWikiService' && @template['active'] + @template.type == 'ExternalWikiService' end end end |