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) {
return __awaiter(this, void 0, void 0, function* () {
cloud_runner_logger_1.default.log(`deleting PVC`);
yield this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
cloud_runner_logger_1.default.log(`deleted PVC`);
return this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
});
}
static findPodFromJob(kubeClient, jobName, namespace) {
@ -2533,8 +2532,7 @@ class KubernetesTaskRunner {
previous: false,
};
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); }));
stream.removeAllListeners();
const resultError = yield new Promise((resolve) => new client_node_1.Log(kubeConfig).log(namespace, podName, containerName, stream, resolve, logOptions));
stream.destroy();
if (resultError) {
throw resultError;
@ -2558,6 +2556,9 @@ class KubernetesTaskRunner {
}
}
catch (error) {
if (stream) {
stream.destroy();
}
throw error;
}
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 }[],
) {
CloudRunnerLogger.log(`deleting PVC`);
await this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
CloudRunnerLogger.log(`deleted PVC`);
return this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
}
static async findPodFromJob(kubeClient: CoreV1Api, jobName: string, namespace: string) {

View File

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