2021-04-18 20:15:05 +02:00
|
|
|
from typing import List
|
|
|
|
|
2022-09-10 19:46:20 -07:00
|
|
|
from datahub.configuration.common import ConfigModel
|
|
|
|
from datahub.ingestion.api.common import RecordEnvelope
|
2021-04-18 20:15:05 +02:00
|
|
|
from datahub.ingestion.api.sink import Sink, SinkReport, WriteCallback
|
|
|
|
|
|
|
|
|
|
|
|
class RecordingSinkReport(SinkReport):
|
|
|
|
received_records: List[RecordEnvelope] = []
|
|
|
|
|
|
|
|
def report_record_written(self, record_envelope: RecordEnvelope) -> None:
|
|
|
|
super().report_record_written(record_envelope)
|
|
|
|
self.received_records.append(record_envelope)
|
|
|
|
|
|
|
|
|
2022-09-10 19:46:20 -07:00
|
|
|
class RecordingSink(Sink[ConfigModel, RecordingSinkReport]):
|
2021-04-18 20:15:05 +02:00
|
|
|
def write_record_async(
|
|
|
|
self, record_envelope: RecordEnvelope, callback: WriteCallback
|
|
|
|
) -> None:
|
2022-09-10 19:46:20 -07:00
|
|
|
self.report.report_record_written(record_envelope)
|
2021-04-18 20:15:05 +02:00
|
|
|
callback.on_success(record_envelope, {})
|