Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2017-05-05 19:01:33 +0300
committerJames Lopez <james@jameslopez.es>2017-05-05 19:01:33 +0300
commit6ecf16b8f70335e1e6868b7c918cd031f5eb2f8d (patch)
treee57683de43fa63c278929bcba679d1077906a2fe /app/services
parentce418036c763219df8239632f71ef0e9782be7ea (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