From 79a78203affd11899afc0c32dbfcd3adcf32842a Mon Sep 17 00:00:00 2001 From: zjy <3161362058@qq.com> Date: Fri, 13 Sep 2024 12:19:15 +0800 Subject: [PATCH] fix:launchpad resource update in checkPermission API --- .../applaunchpad/src/api/platform.ts | 2 +- .../src/pages/api/platform/checkPermission.ts | 32 +++++++++---------- .../applaunchpad/src/pages/app/edit/index.tsx | 5 ++- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/frontend/providers/applaunchpad/src/api/platform.ts b/frontend/providers/applaunchpad/src/api/platform.ts index a4817dd2858..e8fe277b932 100644 --- a/frontend/providers/applaunchpad/src/api/platform.ts +++ b/frontend/providers/applaunchpad/src/api/platform.ts @@ -23,5 +23,5 @@ export const getUserAccount = () => GET('/api/guide/getAccount'); export const getPriceBonus = () => GET('/api/guide/getBonus'); -export const checkPermission = (payload: { appName: string; resourceType: 'deploy' | 'sts' }) => +export const checkPermission = (payload: { appName: string }) => GET('/api/platform/checkPermission', payload); diff --git a/frontend/providers/applaunchpad/src/pages/api/platform/checkPermission.ts b/frontend/providers/applaunchpad/src/pages/api/platform/checkPermission.ts index 7055a10983e..fb5ebe8f4b7 100644 --- a/frontend/providers/applaunchpad/src/pages/api/platform/checkPermission.ts +++ b/frontend/providers/applaunchpad/src/pages/api/platform/checkPermission.ts @@ -7,14 +7,8 @@ import * as k8s from '@kubernetes/client-node'; export default async function handler(req: NextApiRequest, res: NextApiResponse) { try { - const { appName, resourceType } = req.query as { - appName: string; - resourceType: 'deploy' | 'sts'; - }; - - if (!appName || !resourceType) { - throw new Error('appName or resourceType is empty'); - } + const { appName } = req.query as { appName: string }; + if (!appName) throw new Error('appName is empty'); const { k8sApp, namespace } = await getK8s({ kubeconfig: await authSession(req.headers) @@ -32,7 +26,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< headers: { 'Content-type': k8s.PatchUtils.PATCH_FORMAT_STRATEGIC_MERGE_PATCH } }; - if (resourceType === 'deploy') { + let deploymentUpdated = false; + + try { await k8sApp.patchNamespacedDeployment( appName, namespace, @@ -44,7 +40,14 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< undefined, options ); - } else if (resourceType === 'sts') { + deploymentUpdated = true; + } catch (deployErr: any) { + if (deployErr?.response?.statusCode !== 404) { + throw deployErr; + } + } + + if (!deploymentUpdated) { await k8sApp.patchNamespacedStatefulSet( appName, namespace, @@ -58,22 +61,19 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< ); } - jsonRes(res, { - code: 200, - data: 'success' - }); + jsonRes(res, { code: 200, data: 'success' }); } catch (err: any) { if (err?.body?.code === 403 && err?.body?.message.includes('40001')) { return jsonRes(res, { code: 200, data: 'insufficient_funds', - message: err?.body?.message + message: err.body.message }); } jsonRes(res, { code: 500, - error: err?.body + error: err?.body || err?.message }); } } diff --git a/frontend/providers/applaunchpad/src/pages/app/edit/index.tsx b/frontend/providers/applaunchpad/src/pages/app/edit/index.tsx index bad738f33ab..8a38c8a63f4 100644 --- a/frontend/providers/applaunchpad/src/pages/app/edit/index.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/edit/index.tsx @@ -358,8 +358,7 @@ const EditApp = ({ appName, tabType }: { appName?: string; tabType: string }) => if (appName) { try { const result = await checkPermission({ - appName: data.appName, - resourceType: !!data.storeList?.length ? 'sts' : 'deploy' + appName: data.appName }); if (result === 'insufficient_funds') { return toast({ @@ -370,7 +369,7 @@ const EditApp = ({ appName, tabType }: { appName?: string; tabType: string }) => } catch (error: any) { return toast({ status: 'warning', - title: error + title: error?.message || 'Check Error' }); } }