review comments

pull/524/head
Frostebite 2023-03-26 14:41:33 +01:00
parent 32971bcaa0
commit 371f3a0daf
3 changed files with 22 additions and 5 deletions

10
dist/index.js vendored
View File

@ -3697,6 +3697,7 @@ class KubernetesTaskRunner {
let shouldReadLogs = true; let shouldReadLogs = true;
let shouldCleanup = true; let shouldCleanup = true;
let sinceTime = ``; let sinceTime = ``;
let retriesAfterFinish = 0;
// eslint-disable-next-line no-constant-condition // eslint-disable-next-line no-constant-condition
while (true) { while (true) {
await new Promise((resolve) => setTimeout(resolve, 3000)); await new Promise((resolve) => setTimeout(resolve, 3000));
@ -3711,13 +3712,13 @@ class KubernetesTaskRunner {
} }
let extraFlags = ``; let extraFlags = ``;
extraFlags += (await kubernetes_pods_1.default.IsPodRunning(podName, namespace, kubeClient)) extraFlags += (await kubernetes_pods_1.default.IsPodRunning(podName, namespace, kubeClient))
? ` -f -c ${containerName} --timestamps${sinceTime}` ? ` -f -c ${containerName}`
: ` --previous`; : ` --previous`;
let lastMessageSeenIncludedInChunk = false; let lastMessageSeenIncludedInChunk = false;
let lastMessageSeen = false; let lastMessageSeen = false;
let logs; let logs;
try { try {
logs = await cloud_runner_system_1.CloudRunnerSystem.Run(`kubectl logs ${podName}${extraFlags}`, false, true); logs = await cloud_runner_system_1.CloudRunnerSystem.Run(`kubectl logs ${podName}${extraFlags} --timestamps${sinceTime}`, false, true);
} }
catch (error) { catch (error) {
await new Promise((resolve) => setTimeout(resolve, 3000)); await new Promise((resolve) => setTimeout(resolve, 3000));
@ -3726,6 +3727,10 @@ class KubernetesTaskRunner {
if (continueStreaming) { if (continueStreaming) {
continue; continue;
} }
if (retriesAfterFinish < KubernetesTaskRunner.maxRetry) {
retriesAfterFinish++;
continue;
}
throw error; throw error;
} }
const splitLogs = logs.split(`\n`); const splitLogs = logs.split(`\n`);
@ -3794,6 +3799,7 @@ class KubernetesTaskRunner {
} }
} }
KubernetesTaskRunner.lastReceivedTimestamp = 0; KubernetesTaskRunner.lastReceivedTimestamp = 0;
KubernetesTaskRunner.maxRetry = 3;
KubernetesTaskRunner.lastReceivedMessage = ``; KubernetesTaskRunner.lastReceivedMessage = ``;
exports["default"] = KubernetesTaskRunner; exports["default"] = KubernetesTaskRunner;

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -8,6 +8,7 @@ import KubernetesPods from './kubernetes-pods';
class KubernetesTaskRunner { class KubernetesTaskRunner {
static lastReceivedTimestamp: number = 0; static lastReceivedTimestamp: number = 0;
static readonly maxRetry: number = 3;
static lastReceivedMessage: string = ``; static lastReceivedMessage: string = ``;
static async runTask( static async runTask(
kubeConfig: KubeConfig, kubeConfig: KubeConfig,
@ -21,6 +22,7 @@ class KubernetesTaskRunner {
let shouldReadLogs = true; let shouldReadLogs = true;
let shouldCleanup = true; let shouldCleanup = true;
let sinceTime = ``; let sinceTime = ``;
let retriesAfterFinish = 0;
// eslint-disable-next-line no-constant-condition // eslint-disable-next-line no-constant-condition
while (true) { while (true) {
await new Promise((resolve) => setTimeout(resolve, 3000)); await new Promise((resolve) => setTimeout(resolve, 3000));
@ -38,7 +40,7 @@ class KubernetesTaskRunner {
} }
let extraFlags = ``; let extraFlags = ``;
extraFlags += (await KubernetesPods.IsPodRunning(podName, namespace, kubeClient)) extraFlags += (await KubernetesPods.IsPodRunning(podName, namespace, kubeClient))
? ` -f -c ${containerName} --timestamps${sinceTime}` ? ` -f -c ${containerName}`
: ` --previous`; : ` --previous`;
let lastMessageSeenIncludedInChunk = false; let lastMessageSeenIncludedInChunk = false;
let lastMessageSeen = false; let lastMessageSeen = false;
@ -46,7 +48,11 @@ class KubernetesTaskRunner {
let logs; let logs;
try { try {
logs = await CloudRunnerSystem.Run(`kubectl logs ${podName}${extraFlags}`, false, true); logs = await CloudRunnerSystem.Run(
`kubectl logs ${podName}${extraFlags} --timestamps${sinceTime}`,
false,
true,
);
} catch (error: any) { } catch (error: any) {
await new Promise((resolve) => setTimeout(resolve, 3000)); await new Promise((resolve) => setTimeout(resolve, 3000));
const continueStreaming = await KubernetesPods.IsPodRunning(podName, namespace, kubeClient); const continueStreaming = await KubernetesPods.IsPodRunning(podName, namespace, kubeClient);
@ -54,6 +60,11 @@ class KubernetesTaskRunner {
if (continueStreaming) { if (continueStreaming) {
continue; continue;
} }
if (retriesAfterFinish < KubernetesTaskRunner.maxRetry) {
retriesAfterFinish++;
continue;
}
throw error; throw error;
} }
const splitLogs = logs.split(`\n`); const splitLogs = logs.split(`\n`);