misc: added proper propagation of error to logs

This commit is contained in:
Sheen Capadngan
2025-05-29 02:38:14 +08:00
parent 8cae92f29e
commit e39e80a0e7
2 changed files with 54 additions and 30 deletions
@@ -82,6 +82,7 @@ export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO):
const url = new URL(providerInputs.url); const url = new URL(providerInputs.url);
const k8sPort = url.port ? Number(url.port) : 443; const k8sPort = url.port ? Number(url.port) : 443;
try {
if (providerInputs.gatewayId) { if (providerInputs.gatewayId) {
const k8sHost = url.hostname; const k8sHost = url.hostname;
@@ -99,6 +100,14 @@ export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO):
} }
return true; return true;
} catch (error) {
let errorMessage = error instanceof Error ? error.message : "Unknown error";
if (axios.isAxiosError(error) && (error.response?.data as { message: string })?.message) {
errorMessage = (error.response?.data as { message: string }).message;
}
throw new Error(`Failed to validate connection: ${errorMessage}`);
}
}; };
const create = async (inputs: unknown, expireAt: number) => { const create = async (inputs: unknown, expireAt: number) => {
@@ -137,6 +146,7 @@ export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO):
const k8sGatewayHost = url.hostname; const k8sGatewayHost = url.hostname;
const k8sPort = url.port ? Number(url.port) : 443; const k8sPort = url.port ? Number(url.port) : 443;
try {
const tokenData = providerInputs.gatewayId const tokenData = providerInputs.gatewayId
? await $gatewayProxyWrapper( ? await $gatewayProxyWrapper(
{ {
@@ -152,6 +162,14 @@ export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO):
entityId: providerInputs.serviceAccountName, entityId: providerInputs.serviceAccountName,
data: { TOKEN: tokenData.status.token } data: { TOKEN: tokenData.status.token }
}; };
} catch (error) {
let errorMessage = error instanceof Error ? error.message : "Unknown error";
if (axios.isAxiosError(error) && (error.response?.data as { message: string })?.message) {
errorMessage = (error.response?.data as { message: string }).message;
}
throw new Error(`Failed to validate connection: ${errorMessage}`);
}
}; };
const revoke = async (_inputs: unknown, entityId: string) => { const revoke = async (_inputs: unknown, entityId: string) => {
+7 -1
View File
@@ -3,6 +3,7 @@ import crypto from "node:crypto";
import net from "node:net"; import net from "node:net";
import quicDefault, * as quicModule from "@infisical/quic"; import quicDefault, * as quicModule from "@infisical/quic";
import axios from "axios";
import { BadRequestError } from "../errors"; import { BadRequestError } from "../errors";
import { logger } from "../logger"; import { logger } from "../logger";
@@ -378,7 +379,12 @@ export const withGatewayProxy = async <T>(
logger.error(new Error(proxyErrorMessage), "Failed to proxy"); logger.error(new Error(proxyErrorMessage), "Failed to proxy");
} }
logger.error(err, "Failed to do gateway"); logger.error(err, "Failed to do gateway");
throw new BadRequestError({ message: proxyErrorMessage || (err as Error)?.message }); let errorMessage = proxyErrorMessage || (err as Error)?.message;
if (axios.isAxiosError(err) && (err.response?.data as { message?: string })?.message) {
errorMessage = (err.response?.data as { message: string }).message;
}
throw new BadRequestError({ message: errorMessage });
} finally { } finally {
// Ensure cleanup happens regardless of success or failure // Ensure cleanup happens regardless of success or failure
await cleanup(); await cleanup();