async stream destroy and await

pull/310/head
Frostebite 2022-01-31 23:07:42 +00:00
parent d29e077c0e
commit 0eef3b325c
4 changed files with 12 additions and 11 deletions

9
dist/index.js vendored
View File

@ -2036,8 +2036,7 @@ class Kubernetes {
defaultSecretsArray) { defaultSecretsArray) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
cloud_runner_logger_1.default.log(`deleting PVC`); cloud_runner_logger_1.default.log(`deleting PVC`);
yield this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace); return this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
cloud_runner_logger_1.default.log(`deleted PVC`);
}); });
} }
static findPodFromJob(kubeClient, jobName, namespace) { static findPodFromJob(kubeClient, jobName, namespace) {
@ -2533,8 +2532,7 @@ class KubernetesTaskRunner {
previous: false, previous: false,
}; };
try { try {
const resultError = yield new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { return yield new client_node_1.Log(kubeConfig).log(namespace, podName, containerName, stream, resolve, logOptions); })); const resultError = yield new Promise((resolve) => new client_node_1.Log(kubeConfig).log(namespace, podName, containerName, stream, resolve, logOptions));
stream.removeAllListeners();
stream.destroy(); stream.destroy();
if (resultError) { if (resultError) {
throw resultError; throw resultError;
@ -2558,6 +2556,9 @@ class KubernetesTaskRunner {
} }
} }
catch (error) { catch (error) {
if (stream) {
stream.destroy();
}
throw error; throw error;
} }
cloud_runner_logger_1.default.log('end of log stream'); cloud_runner_logger_1.default.log('end of log stream');

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -181,8 +181,7 @@ class Kubernetes implements CloudRunnerProviderInterface {
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[], defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
) { ) {
CloudRunnerLogger.log(`deleting PVC`); CloudRunnerLogger.log(`deleting PVC`);
await this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace); return this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
CloudRunnerLogger.log(`deleted PVC`);
} }
static async findPodFromJob(kubeClient: CoreV1Api, jobName: string, namespace: string) { static async findPodFromJob(kubeClient: CoreV1Api, jobName: string, namespace: string) {

View File

@ -36,11 +36,9 @@ class KubernetesTaskRunner {
previous: false, previous: false,
}; };
try { try {
const resultError = await new Promise( const resultError = await new Promise((resolve) =>
async (resolve) => new Log(kubeConfig).log(namespace, podName, containerName, stream, resolve, logOptions),
await new Log(kubeConfig).log(namespace, podName, containerName, stream, resolve, logOptions),
); );
stream.removeAllListeners();
stream.destroy(); stream.destroy();
if (resultError) { if (resultError) {
throw resultError; throw resultError;
@ -69,6 +67,9 @@ class KubernetesTaskRunner {
throw new Error(`No logs streamed from k8s`); throw new Error(`No logs streamed from k8s`);
} }
} catch (error) { } catch (error) {
if (stream) {
stream.destroy();
}
throw error; throw error;
} }
CloudRunnerLogger.log('end of log stream'); CloudRunnerLogger.log('end of log stream');