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 'lib/bulk_imports/logger.rb')
-rw-r--r--lib/bulk_imports/logger.rb49
1 files changed, 48 insertions, 1 deletions
diff --git a/lib/bulk_imports/logger.rb b/lib/bulk_imports/logger.rb
index be15c050770..3b62d0ffdf3 100644
--- a/lib/bulk_imports/logger.rb
+++ b/lib/bulk_imports/logger.rb
@@ -4,8 +4,55 @@ module BulkImports
class Logger < ::Gitlab::Import::Logger
IMPORTER_NAME = 'gitlab_migration'
+ # Extract key information from a provided entity and include it in log
+ # entries created from this logger instance.
+ # @param entity [BulkImports::Entity]
+ def with_entity(entity)
+ @entity = entity
+ self
+ end
+
+ # Extract key information from a provided tracker and its entity and include
+ # it in log entries created from this logger instance.
+ # @param tracker [BulkImports::Tracker]
+ def with_tracker(tracker)
+ with_entity(tracker.entity)
+ @tracker = tracker
+ self
+ end
+
+ def entity_attributes
+ return {} unless entity
+
+ {
+ bulk_import_id: entity.bulk_import_id,
+ bulk_import_entity_id: entity.id,
+ bulk_import_entity_type: entity.source_type,
+ source_full_path: entity.source_full_path,
+ source_version: entity.source_version.to_s
+ }
+ end
+
+ def tracker_attributes
+ return {} unless tracker
+
+ {
+ tracker_id: tracker.id,
+ pipeline_class: tracker.pipeline_name,
+ tracker_state: tracker.human_status_name
+ }
+ end
+
def default_attributes
- super.merge(importer: IMPORTER_NAME)
+ super.merge(
+ { importer: IMPORTER_NAME },
+ entity_attributes,
+ tracker_attributes
+ )
end
+
+ private
+
+ attr_reader :entity, :tracker
end
end