From 91588392a363ef57aaffffbb24f3c0a7b759f514 Mon Sep 17 00:00:00 2001 From: bskjon Date: Sun, 20 Apr 2025 01:56:14 +0200 Subject: [PATCH] Error logging in regards to cause of failure --- .../EncodeWorkArgumentsTaskListener.kt | 38 +++++++++++-------- .../ExtractWorkArgumentsTaskListener.kt | 27 +++++++------ 2 files changed, 39 insertions(+), 26 deletions(-) diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/EncodeWorkArgumentsTaskListener.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/EncodeWorkArgumentsTaskListener.kt index 4b979281..4d6024c6 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/EncodeWorkArgumentsTaskListener.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/EncodeWorkArgumentsTaskListener.kt @@ -4,6 +4,9 @@ import mu.KotlinLogging import no.iktdev.eventi.core.ConsumableEvent import no.iktdev.eventi.core.WGson import no.iktdev.eventi.data.EventStatus +import no.iktdev.eventi.data.dataAs +import no.iktdev.eventi.data.eventId +import no.iktdev.eventi.data.referenceId import no.iktdev.mediaprocessing.coordinator.Coordinator import no.iktdev.mediaprocessing.coordinator.CoordinatorEventListener import no.iktdev.mediaprocessing.coordinator.tasksV2.mapping.EncodeWorkArgumentsMapping @@ -36,6 +39,12 @@ class EncodeWorkArgumentsTaskListener: CoordinatorEventListener() { override fun shouldIProcessAndHandleEvent(incomingEvent: Event, events: List): Boolean { val state = super.shouldIProcessAndHandleEvent(incomingEvent, events) val eventType = events.map { it.eventType } + + val startOperation = events.findFirstOf(Events.ProcessStarted)?.dataAs() ?: return false + if (startOperation.operations.none { it == OperationEvents.ENCODE }) { + return false + } + return state && eventType.containsAll(listensForEvents) } @@ -45,36 +54,35 @@ class EncodeWorkArgumentsTaskListener: CoordinatorEventListener() { log.error { "Event is null and should not be available! ${WGson.gson.toJson(incomingEvent.metadata())}" } return } + val started = events.find { it.eventType == Events.ProcessStarted }?.az() ?: return + active = true - val started = events.find { it.eventType == Events.ProcessStarted }?.az() - if (started == null) { - active = false - return - } - if (started.data == null || started.data?.operations?.contains(OperationEvents.ENCODE) == false) { - active = false - return - } - val streams = events.find { it.eventType == Events.StreamParsed }?.az()?.data + + val streamsParsed = events.findEventOf() + val streams = streamsParsed?.data if (streams == null) { active = false + log.error { "No Streams found for event ${streamsParsed?.metadata?.eventId} with referenceId ${event.metadata.referenceId}" } return } - val mediaInfo = events.find { it.eventType == Events.ReadOutNameAndType }?.az() - if (mediaInfo?.data == null) { + val mediaInfoEvent = events.findEventOf() + val mediaInfo = mediaInfoEvent?.data + val mediaInfoData = mediaInfo?.toValueObject() + if (mediaInfo == null) { active = false + log.error { "No media info data was provided for event ${mediaInfoEvent?.eventId()} with referenceId ${event.referenceId()}" } return - } - val mediaInfoData = mediaInfo.data?.toValueObject() - if (mediaInfoData == null) { + } else if (mediaInfoData == null) { active = false + log.error { "Media info data was provided but could not be converted to proper value object for event ${mediaInfoEvent?.eventId()} with referenceId ${event.referenceId()}" } return } val inputFile = started.data?.file if (inputFile == null) { active = false + log.error { "No input file was provided for the start event ${started.metadata.eventId} with referenceId ${event.referenceId()}" } return } val mapper = EncodeWorkArgumentsMapping( diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/ExtractWorkArgumentsTaskListener.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/ExtractWorkArgumentsTaskListener.kt index 5376fe95..0cb8ae25 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/ExtractWorkArgumentsTaskListener.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/ExtractWorkArgumentsTaskListener.kt @@ -4,6 +4,8 @@ import mu.KotlinLogging import no.iktdev.eventi.core.ConsumableEvent import no.iktdev.eventi.core.WGson import no.iktdev.eventi.data.EventStatus +import no.iktdev.eventi.data.eventId +import no.iktdev.eventi.data.referenceId import no.iktdev.mediaprocessing.coordinator.Coordinator import no.iktdev.mediaprocessing.coordinator.CoordinatorEventListener import no.iktdev.mediaprocessing.coordinator.tasksV2.mapping.ExtractWorkArgumentsMapping @@ -44,32 +46,35 @@ class ExtractWorkArgumentsTaskListener: CoordinatorEventListener() { log.error { "Event is null and should not be available! ${WGson.gson.toJson(incomingEvent.metadata())}" } return } - active = true val started = events.find { it.eventType == Events.ProcessStarted }?.az() ?: return - if (started.data == null || started.data?.operations?.contains(OperationEvents.EXTRACT) == false) { - active = false - return - } - val streams = events.find { it.eventType == Events.StreamParsed }?.az()?.data + + active = true + + val streamsParsed = events.findEventOf() + val streams = streamsParsed?.data if (streams == null) { active = false + log.error { "No Streams found for event ${streamsParsed?.metadata?.eventId} with referenceId ${event.metadata.referenceId}" } return } - val mediaInfo = events.find { it.eventType == Events.ReadOutNameAndType }?.az() - if (mediaInfo?.data == null) { + val mediaInfoEvent = events.findEventOf() + val mediaInfo = mediaInfoEvent?.data + val mediaInfoData = mediaInfo?.toValueObject() + if (mediaInfo == null) { active = false + log.error { "No media info data was provided for event ${mediaInfoEvent?.eventId()} with referenceId ${event.referenceId()}" } return - } - val mediaInfoData = mediaInfo.data?.toValueObject() - if (mediaInfoData == null) { + } else if (mediaInfoData == null) { active = false + log.error { "Media info data was provided but could not be converted to proper value object for event ${mediaInfoEvent?.eventId()} with referenceId ${event.referenceId()}" } return } val inputFile = started.data?.file if (inputFile == null) { active = false + log.error { "No input file was provided for the start event ${started.metadata.eventId} with referenceId ${event.referenceId()}" } return }