summaryrefslogtreecommitdiff
path: root/app/services/projects
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-07 12:09:13 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-07 12:09:13 +0000
commit211a8c3361ccf4eb92f36edbdcf15c98fcdcc8b7 (patch)
tree0ad37172721a39b0d57240bb1b4e70f200a0d93e /app/services/projects
parent456a7247f9e88fc2518b69a1a00e905c6db6d775 (diff)
downloadgitlab-ce-211a8c3361ccf4eb92f36edbdcf15c98fcdcc8b7.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/projects')
-rw-r--r--app/services/projects/create_service.rb8
-rw-r--r--app/services/projects/fork_service.rb12
-rw-r--r--app/services/projects/lfs_pointers/lfs_download_service.rb6
-rw-r--r--app/services/projects/move_lfs_objects_projects_service.rb2
-rw-r--r--app/services/projects/propagate_instance_level_service.rb (renamed from app/services/projects/propagate_service_template.rb)28
-rw-r--r--app/services/projects/unlink_fork_service.rb4
6 files changed, 27 insertions, 33 deletions
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb
index ef06545b27d..f3666f100a3 100644
--- a/app/services/projects/create_service.rb
+++ b/app/services/projects/create_service.rb
@@ -134,7 +134,7 @@ module Projects
if @project.save
unless @project.gitlab_project_import?
- create_services_from_active_templates(@project)
+ create_services_from_active_instance_level_services(@project)
@project.create_labels
end
@@ -160,9 +160,9 @@ module Projects
end
# rubocop: disable CodeReuse/ActiveRecord
- def create_services_from_active_templates(project)
- Service.where(template: true, active: true).each do |template|
- service = Service.build_from_template(project.id, template)
+ 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)
service.save!
end
end
diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb
index e66a0ed181a..fcfea567885 100644
--- a/app/services/projects/fork_service.rb
+++ b/app/services/projects/fork_service.rb
@@ -26,17 +26,7 @@ module Projects
build_fork_network_member(fork_to_project)
- if link_fork_network(fork_to_project)
- # A forked project stores its LFS objects in the `forked_from_project`.
- # So the LFS objects become inaccessible, and therefore delete them from
- # the database so they'll get cleaned up.
- #
- # TODO: refactor this to get the correct lfs objects when implementing
- # https://gitlab.com/gitlab-org/gitlab-foss/issues/39769
- fork_to_project.lfs_objects_projects.delete_all
-
- fork_to_project
- end
+ fork_to_project if link_fork_network(fork_to_project)
end
def fork_new_project
diff --git a/app/services/projects/lfs_pointers/lfs_download_service.rb b/app/services/projects/lfs_pointers/lfs_download_service.rb
index a009f479d5d..bd70012c76c 100644
--- a/app/services/projects/lfs_pointers/lfs_download_service.rb
+++ b/app/services/projects/lfs_pointers/lfs_download_service.rb
@@ -39,9 +39,9 @@ module Projects
def download_lfs_file!
with_tmp_file do |tmp_file|
download_and_save_file!(tmp_file)
- project.all_lfs_objects << LfsObject.new(oid: lfs_oid,
- size: lfs_size,
- file: tmp_file)
+ project.lfs_objects << LfsObject.new(oid: lfs_oid,
+ size: lfs_size,
+ file: tmp_file)
success
end
diff --git a/app/services/projects/move_lfs_objects_projects_service.rb b/app/services/projects/move_lfs_objects_projects_service.rb
index 10e19014db4..8cc420d7ba7 100644
--- a/app/services/projects/move_lfs_objects_projects_service.rb
+++ b/app/services/projects/move_lfs_objects_projects_service.rb
@@ -16,7 +16,7 @@ module Projects
private
def move_lfs_objects_projects
- non_existent_lfs_objects_projects.update_all(project_id: @project.lfs_storage_project.id)
+ non_existent_lfs_objects_projects.update_all(project_id: @project.id)
end
def remove_remaining_lfs_objects_project
diff --git a/app/services/projects/propagate_service_template.rb b/app/services/projects/propagate_instance_level_service.rb
index 6013b00b8c6..dc75977ba0f 100644
--- a/app/services/projects/propagate_service_template.rb
+++ b/app/services/projects/propagate_instance_level_service.rb
@@ -1,38 +1,38 @@
# frozen_string_literal: true
module Projects
- class PropagateServiceTemplate
+ class PropagateInstanceLevelService
BATCH_SIZE = 100
def self.propagate(*args)
new(*args).propagate
end
- def initialize(template)
- @template = template
+ def initialize(instance_level_service)
+ @instance_level_service = instance_level_service
end
def propagate
- return unless @template.active?
+ return unless @instance_level_service.active?
- Rails.logger.info("Propagating services for template #{@template.id}") # rubocop:disable Gitlab/RailsLogger
+ Rails.logger.info("Propagating services for instance_level_service #{@instance_level_service.id}") # rubocop:disable Gitlab/RailsLogger
- propagate_projects_with_template
+ propagate_projects_with_instance_level_service
end
private
- def propagate_projects_with_template
+ def propagate_projects_with_instance_level_service
loop do
batch = Project.uncached { project_ids_batch }
- bulk_create_from_template(batch) unless batch.empty?
+ bulk_create_from_instance_level_service(batch) unless batch.empty?
break if batch.size < BATCH_SIZE
end
end
- def bulk_create_from_template(batch)
+ def bulk_create_from_instance_level_service(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 = '#{@template.type}'
+ AND services.type = '#{@instance_level_service.type}'
)
AND projects.pending_delete = false
AND projects.archived = false
@@ -73,9 +73,9 @@ module Projects
def service_hash
@service_hash ||=
begin
- template_hash = @template.as_json(methods: :type).except('id', 'template', 'project_id')
+ instance_hash = @instance_level_service.as_json(methods: :type).except('id', 'instance', 'project_id')
- template_hash.each_with_object({}) do |(key, value), service_hash|
+ instance_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?
- @template.issue_tracker? && !@template.default
+ @instance_level_service.issue_tracker? && !@instance_level_service.default
end
def active_external_wiki?
- @template.type == 'ExternalWikiService'
+ @instance_level_service.type == 'ExternalWikiService'
end
end
end
diff --git a/app/services/projects/unlink_fork_service.rb b/app/services/projects/unlink_fork_service.rb
index e7e0141099e..b3cf27373cd 100644
--- a/app/services/projects/unlink_fork_service.rb
+++ b/app/services/projects/unlink_fork_service.rb
@@ -52,6 +52,10 @@ module Projects
Projects::ForksCountService.new(project).refresh_cache
end
+ # TODO: Remove this method once all LfsObjectsProject records are backfilled
+ # for forks.
+ #
+ # See https://gitlab.com/gitlab-org/gitlab/issues/122002 for more info.
def save_lfs_objects
return unless @project.forked?