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:
Diffstat (limited to 'app/services/projects/overwrite_project_service.rb')
-rw-r--r--app/services/projects/overwrite_project_service.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/services/projects/overwrite_project_service.rb b/app/services/projects/overwrite_project_service.rb
index 6be3b1b5a6f..f35370c427f 100644
--- a/app/services/projects/overwrite_project_service.rb
+++ b/app/services/projects/overwrite_project_service.rb
@@ -5,6 +5,8 @@ module Projects
def execute(source_project)
return unless source_project && source_project.namespace == @project.namespace
+ start_time = ::Gitlab::Metrics::System.monotonic_time
+
Project.transaction do
move_before_destroy_relationships(source_project)
# Reset is required in order to get the proper
@@ -25,10 +27,25 @@ module Projects
else
raise
end
+
+ ensure
+ track_service(start_time, source_project, e)
end
private
+ def track_service(start_time, source_project, exception)
+ return if ::Feature.disabled?(:project_overwrite_service_tracking, source_project, default_enabled: :yaml)
+
+ duration = ::Gitlab::Metrics::System.monotonic_time - start_time
+
+ Gitlab::AppJsonLogger.info(class: self.class.name,
+ namespace_id: source_project.namespace.id,
+ project_id: source_project.id,
+ duration_s: duration.to_f,
+ error: exception.class.name)
+ end
+
def move_before_destroy_relationships(source_project)
options = { remove_remaining_elements: false }