pull/524/head
Frostebite 2023-03-25 17:51:10 +00:00
parent fcc14a7550
commit 6b9984ca54
3 changed files with 50 additions and 65 deletions

46
dist/index.js vendored
View File

@ -3682,36 +3682,28 @@ class KubernetesTaskRunner {
} }
let lastMessageSeenIncludedInChunk = false; let lastMessageSeenIncludedInChunk = false;
let lastMessageSeen = false; let lastMessageSeen = false;
// using this instead of Kube const logs = await cloud_runner_system_1.CloudRunnerSystem.Run(`kubectl logs ${podName} -f -c ${containerName} --timestamps${sinceTime}`, false, true);
try { const splitLogs = logs.split(`\n`);
const logs = await cloud_runner_system_1.CloudRunnerSystem.Run(`kubectl logs ${podName} -f -c ${containerName} --timestamps${sinceTime}`, false, true); for (const chunk of splitLogs) {
const splitLogs = logs.split(`\n`); if (chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) &&
for (const chunk of splitLogs) { KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) !== ``) {
if (chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) && cloud_runner_logger_1.default.log(`Previous log message found ${chunk}`);
KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) !== ``) { lastMessageSeenIncludedInChunk = true;
cloud_runner_logger_1.default.log(`Previous log message found ${chunk}`);
lastMessageSeenIncludedInChunk = true;
}
}
for (const chunk of splitLogs) {
const newDate = Date.parse(`${chunk.toString().split(`Z `)[0]}Z`);
if (chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``)) {
lastMessageSeen = true;
}
if (lastMessageSeenIncludedInChunk && !lastMessageSeen) {
continue;
}
didStreamAnyLogs = true;
const message = cloud_runner_1.default.buildParameters.cloudRunnerDebug ? chunk : chunk.split(`Z `)[1];
KubernetesTaskRunner.lastReceivedMessage = chunk;
KubernetesTaskRunner.lastReceivedTimestamp = newDate;
({ shouldReadLogs, shouldCleanup, output } = follow_log_stream_service_1.FollowLogStreamService.handleIteration(message, shouldReadLogs, shouldCleanup, output));
} }
} }
catch (error) { for (const chunk of splitLogs) {
if (error.includes(`s`)) { const newDate = Date.parse(`${chunk.toString().split(`Z `)[0]}Z`);
break; if (chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``)) {
lastMessageSeen = true;
} }
if (lastMessageSeenIncludedInChunk && !lastMessageSeen) {
continue;
}
didStreamAnyLogs = true;
const message = cloud_runner_1.default.buildParameters.cloudRunnerDebug ? chunk : chunk.split(`Z `)[1];
KubernetesTaskRunner.lastReceivedMessage = chunk;
KubernetesTaskRunner.lastReceivedTimestamp = newDate;
({ shouldReadLogs, shouldCleanup, output } = follow_log_stream_service_1.FollowLogStreamService.handleIteration(message, shouldReadLogs, shouldCleanup, output));
} }
if (!didStreamAnyLogs) { if (!didStreamAnyLogs) {
core.error('Failed to stream any logs, listing namespace events, check for an error with the container'); core.error('Failed to stream any logs, listing namespace events, check for an error with the container');

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -40,46 +40,39 @@ class KubernetesTaskRunner {
let lastMessageSeenIncludedInChunk = false; let lastMessageSeenIncludedInChunk = false;
let lastMessageSeen = false; let lastMessageSeen = false;
// using this instead of Kube const logs = await CloudRunnerSystem.Run(
try { `kubectl logs ${podName} -f -c ${containerName} --timestamps${sinceTime}`,
const logs = await CloudRunnerSystem.Run( false,
`kubectl logs ${podName} -f -c ${containerName} --timestamps${sinceTime}`, true,
false, );
true, const splitLogs = logs.split(`\n`);
); for (const chunk of splitLogs) {
const splitLogs = logs.split(`\n`); if (
for (const chunk of splitLogs) { chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) &&
if ( KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) !== ``
chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) && ) {
KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``) !== `` CloudRunnerLogger.log(`Previous log message found ${chunk}`);
) { lastMessageSeenIncludedInChunk = true;
CloudRunnerLogger.log(`Previous log message found ${chunk}`);
lastMessageSeenIncludedInChunk = true;
}
} }
for (const chunk of splitLogs) { }
const newDate = Date.parse(`${chunk.toString().split(`Z `)[0]}Z`); for (const chunk of splitLogs) {
if (chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``)) { const newDate = Date.parse(`${chunk.toString().split(`Z `)[0]}Z`);
lastMessageSeen = true; if (chunk.replace(/\s/g, ``) === KubernetesTaskRunner.lastReceivedMessage.replace(/\s/g, ``)) {
} lastMessageSeen = true;
if (lastMessageSeenIncludedInChunk && !lastMessageSeen) {
continue;
}
didStreamAnyLogs = true;
const message = CloudRunner.buildParameters.cloudRunnerDebug ? chunk : chunk.split(`Z `)[1];
KubernetesTaskRunner.lastReceivedMessage = chunk;
KubernetesTaskRunner.lastReceivedTimestamp = newDate;
({ shouldReadLogs, shouldCleanup, output } = FollowLogStreamService.handleIteration(
message,
shouldReadLogs,
shouldCleanup,
output,
));
} }
} catch (error: any) { if (lastMessageSeenIncludedInChunk && !lastMessageSeen) {
if (error.includes(`s`)) { continue;
break;
} }
didStreamAnyLogs = true;
const message = CloudRunner.buildParameters.cloudRunnerDebug ? chunk : chunk.split(`Z `)[1];
KubernetesTaskRunner.lastReceivedMessage = chunk;
KubernetesTaskRunner.lastReceivedTimestamp = newDate;
({ shouldReadLogs, shouldCleanup, output } = FollowLogStreamService.handleIteration(
message,
shouldReadLogs,
shouldCleanup,
output,
));
} }
if (!didStreamAnyLogs) { if (!didStreamAnyLogs) {