diff options
Diffstat (limited to 'lib/bulk_imports/logger.rb')
-rw-r--r-- | lib/bulk_imports/logger.rb | 49 |
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 |