From 6991724258f7b8f2b2247680d91b8985c6cf6af0 Mon Sep 17 00:00:00 2001 From: James Read Date: Sat, 20 Apr 2024 20:58:38 +0100 Subject: [PATCH] bugfix: Unexpected message #283 (#284) --- OliveTin.proto | 3 +++ internal/websocket/websocket.go | 34 +++++++++++++++++---------------- webui.dev/js/marshaller.js | 4 ++-- webui.dev/js/websocket.js | 2 +- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/OliveTin.proto b/OliveTin.proto index e37dcbb..dee9078 100644 --- a/OliveTin.proto +++ b/OliveTin.proto @@ -185,6 +185,9 @@ message GetReadyzResponse { } message EventConfigChanged {} +message EventExecutionFinished { + LogEntry log_entry = 1; +} service OliveTinApiService { rpc GetDashboardComponents(GetDashboardComponentsRequest) returns (GetDashboardComponentsResponse) { diff --git a/internal/websocket/websocket.go b/internal/websocket/websocket.go index 7499571..0858966 100644 --- a/internal/websocket/websocket.go +++ b/internal/websocket/websocket.go @@ -62,24 +62,26 @@ func checkOriginPermissive(r *http.Request) bool { } func (WebsocketExecutionListener) OnExecutionFinished(logEntry *executor.InternalLogEntry) { - le := &pb.LogEntry{ - ActionTitle: logEntry.ActionTitle, - ActionIcon: logEntry.ActionIcon, - ActionId: logEntry.ActionId, - DatetimeStarted: logEntry.DatetimeStarted.Format("2006-01-02 15:04:05"), - DatetimeFinished: logEntry.DatetimeFinished.Format("2006-01-02 15:04:05"), - Stdout: logEntry.Stdout, - Stderr: logEntry.Stderr, - TimedOut: logEntry.TimedOut, - Blocked: logEntry.Blocked, - ExitCode: logEntry.ExitCode, - Tags: logEntry.Tags, - ExecutionTrackingId: logEntry.ExecutionTrackingID, - ExecutionStarted: logEntry.ExecutionStarted, - ExecutionFinished: logEntry.ExecutionFinished, + evt := &pb.EventExecutionFinished{ + LogEntry: &pb.LogEntry{ + ActionTitle: logEntry.ActionTitle, + ActionIcon: logEntry.ActionIcon, + ActionId: logEntry.ActionId, + DatetimeStarted: logEntry.DatetimeStarted.Format("2006-01-02 15:04:05"), + DatetimeFinished: logEntry.DatetimeFinished.Format("2006-01-02 15:04:05"), + Stdout: logEntry.Stdout, + Stderr: logEntry.Stderr, + TimedOut: logEntry.TimedOut, + Blocked: logEntry.Blocked, + ExitCode: logEntry.ExitCode, + Tags: logEntry.Tags, + ExecutionTrackingId: logEntry.ExecutionTrackingID, + ExecutionStarted: logEntry.ExecutionStarted, + ExecutionFinished: logEntry.ExecutionFinished, + }, } - broadcast(le) + broadcast(evt) } func broadcast(pbmsg protoreflect.ProtoMessage) { diff --git a/webui.dev/js/marshaller.js b/webui.dev/js/marshaller.js index ebaf26b..1866d38 100644 --- a/webui.dev/js/marshaller.js +++ b/webui.dev/js/marshaller.js @@ -12,7 +12,7 @@ export function initMarshaller () { window.logEntries = {} - window.addEventListener('ExecutionFinished', onExecutionFinished) + window.addEventListener('EventExecutionFinished', onExecutionFinished) } export function marshalDashboardComponentsJsonToHtml (json) { @@ -52,7 +52,7 @@ function marshalActionsJsonToHtml (json) { } function onExecutionFinished (evt) { - const logEntry = evt.payload + const logEntry = evt.payload.logEntry const actionButton = window.actionButtons[logEntry.actionTitle] diff --git a/webui.dev/js/websocket.js b/webui.dev/js/websocket.js index c7a47e5..ebb0dd4 100644 --- a/webui.dev/js/websocket.js +++ b/webui.dev/js/websocket.js @@ -41,7 +41,7 @@ function websocketOnMessage (msg) { switch (j.type) { case 'EventConfigChanged': - case 'ExecutionFinished': + case 'EventExecutionFinished': window.dispatchEvent(e) break default: