mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-07-29 12:00:32 +00:00
59 lines
1.4 KiB
Ruby
59 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module BulkImports
|
|
class Logger < ::Import::Framework::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 },
|
|
entity_attributes,
|
|
tracker_attributes
|
|
)
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :entity, :tracker
|
|
end
|
|
end
|