From fdb061bfbb35a8925c15363f86af7ed9c284c339 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Fri, 3 Nov 2023 09:05:32 +0000 Subject: [PATCH] Fix bug with container log formatting (#9967) * Fix bug with container log formatting * Fix lint issue --- .../nav/WindowManager/ContainerLogs.vue | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/shell/components/nav/WindowManager/ContainerLogs.vue b/shell/components/nav/WindowManager/ContainerLogs.vue index c4f61283592..649dbe984d8 100644 --- a/shell/components/nav/WindowManager/ContainerLogs.vue +++ b/shell/components/nav/WindowManager/ContainerLogs.vue @@ -274,33 +274,36 @@ export default { }); this.socket.addEventListener(EVENT_MESSAGE, (e) => { - const line = base64Decode(e.detail.data); + const data = base64Decode(e.detail.data); - let msg = line; - let time = null; + // Websocket message may contain multiple lines - loop through each line, one by one + data.split('\n').forEach((line) => { + let msg = line; + let time = null; - const idx = line.indexOf(' '); + const idx = line.indexOf(' '); - if ( idx > 0 ) { - const timeStr = line.substr(0, idx); - const date = new Date(timeStr); + if ( idx > 0 ) { + const timeStr = line.substr(0, idx); + const date = new Date(timeStr); - if ( !isNaN(date.getSeconds()) ) { - time = date.toISOString(); - msg = line.substr(idx + 1); + if ( !isNaN(date.getSeconds()) ) { + time = date.toISOString(); + msg = line.substr(idx + 1); + } } - } - const parsedLine = { - id: lastId++, - msg: ansiup.ansi_to_html(msg), - rawMsg: msg, - time, - }; + const parsedLine = { + id: lastId++, + msg: ansiup.ansi_to_html(msg), + rawMsg: msg, + time, + }; - Object.freeze(parsedLine); + Object.freeze(parsedLine); - this.backlog.push(parsedLine); + this.backlog.push(parsedLine); + }); }); this.socket.connect();