From 78783b288d506e152c8f1e87564a27f958dda69e Mon Sep 17 00:00:00 2001 From: biersoeckli Date: Thu, 12 Dec 2024 10:10:08 +0000 Subject: [PATCH] fixes with edit forms --- .../app/[appId]/domains/default-port-edit.tsx | 7 +++---- .../app/[appId]/domains/domain-edit-overlay.tsx | 6 ++---- .../app/[appId]/overview/monitoring-app.tsx | 7 +------ .../app/[appId]/storage/storage-edit-overlay.tsx | 6 ++---- src/app/project/app/[appId]/storage/storages.tsx | 14 ++++---------- src/server/adapter/longhorn-api.adapter.ts | 13 ++++--------- src/server/services/project.service.ts | 2 +- src/server/services/pvc.service.ts | 1 + 8 files changed, 18 insertions(+), 38 deletions(-) diff --git a/src/app/project/app/[appId]/domains/default-port-edit.tsx b/src/app/project/app/[appId]/domains/default-port-edit.tsx index c7d37f7..5e0284e 100644 --- a/src/app/project/app/[appId]/domains/default-port-edit.tsx +++ b/src/app/project/app/[appId]/domains/default-port-edit.tsx @@ -52,10 +52,9 @@ export default function DefaultPortEditDialog({ children, appPort, appId }: { ch const values = form.watch(); useEffect(() => { - if (!isOpen) { - form.reset(); - } - }, [isOpen]); + form.reset(appPort); + }, [appPort]); + return ( <> diff --git a/src/app/project/app/[appId]/domains/domain-edit-overlay.tsx b/src/app/project/app/[appId]/domains/domain-edit-overlay.tsx index a509350..fdb9c6e 100644 --- a/src/app/project/app/[appId]/domains/domain-edit-overlay.tsx +++ b/src/app/project/app/[appId]/domains/domain-edit-overlay.tsx @@ -58,10 +58,8 @@ export default function DialogEditDialog({ children, domain, appId }: { children const values = form.watch(); useEffect(() => { - if (!isOpen) { - form.reset(); - } - }, [isOpen]); + form.reset(domain); + }, [domain]); return ( <> diff --git a/src/app/project/app/[appId]/overview/monitoring-app.tsx b/src/app/project/app/[appId]/overview/monitoring-app.tsx index 980e1de..cb47a2a 100644 --- a/src/app/project/app/[appId]/overview/monitoring-app.tsx +++ b/src/app/project/app/[appId]/overview/monitoring-app.tsx @@ -54,12 +54,7 @@ export default function MonitoringTab({ return <> - - App Monitoring - This is an overview about the resources the app is consuming in comparison to the resources of all nodes. - - - + {!selectedPod ? : diff --git a/src/app/project/app/[appId]/storage/storage-edit-overlay.tsx b/src/app/project/app/[appId]/storage/storage-edit-overlay.tsx index 2b0f7f0..ea5d275 100644 --- a/src/app/project/app/[appId]/storage/storage-edit-overlay.tsx +++ b/src/app/project/app/[appId]/storage/storage-edit-overlay.tsx @@ -77,10 +77,8 @@ export default function DialogEditDialog({ children, volume, app }: { children: }, [state]); useEffect(() => { - if (!isOpen) { - form.reset(); - } - }, [isOpen]); + form.reset(volume); + }, [volume]); return ( <> diff --git a/src/app/project/app/[appId]/storage/storages.tsx b/src/app/project/app/[appId]/storage/storages.tsx index 43bda33..b45c5b8 100644 --- a/src/app/project/app/[appId]/storage/storages.tsx +++ b/src/app/project/app/[appId]/storage/storages.tsx @@ -13,21 +13,20 @@ import { AppVolume } from "@prisma/client"; import React from "react"; import { KubeObjectNameUtils } from "@/server/utils/kube-object-name.utils"; +type AppVolumeWithCapacity = (AppVolume & { capacity?: string }); export default function StorageList({ app }: { app: AppExtendedModel }) { - const [volumesWithStorage, setVolumesWithStorage] = React.useState<(AppVolume&{capacity?:string})[]>(app.appVolumes); + const [volumesWithStorage, setVolumesWithStorage] = React.useState(app.appVolumes); const loadAndMapStorageData = async () => { - //Funktion aufrufen, die die Daten aus dem Longhorn holt - const response = (await getPvcUsage(app.id, app.projectId)); // hier wäre der call + const response = (await getPvcUsage(app.id, app.projectId)); if (response.status === 'success' && response.data) { - (response.data); - const mappedVolumeData = [...volumesWithStorage]; + const mappedVolumeData = [...app.appVolumes] as AppVolumeWithCapacity[]; for (let item of mappedVolumeData) { const volume = response.data.find(x => x.pvcName === KubeObjectNameUtils.toPvcName(item.id)); if (volume) { @@ -38,15 +37,10 @@ export default function StorageList({ app }: { } else { console.error(response); } - - - } React.useEffect(() => { - setVolumesWithStorage(app.appVolumes); loadAndMapStorageData(); - }, [app.appVolumes]); const { openDialog } = useConfirmDialog(); diff --git a/src/server/adapter/longhorn-api.adapter.ts b/src/server/adapter/longhorn-api.adapter.ts index 263f63f..1354147 100644 --- a/src/server/adapter/longhorn-api.adapter.ts +++ b/src/server/adapter/longhorn-api.adapter.ts @@ -4,7 +4,7 @@ class LonghornApiAdapter { async getLonghornVolume(pvcName: String) { //Soll PVC Name und Used Size zurückgeben let longhornApiUrl = process.env.NODE_ENV === 'production' ? 'http://longhorn-frontend.longhorn-system.svc.cluster.local/v1/volumes' : 'http://localhost:4000/v1/volumes'; - try { + // Request senden const response = await fetch(`${longhornApiUrl}/${pvcName}`, { cache: 'no-cache', @@ -27,11 +27,6 @@ class LonghornApiAdapter { const usedStorage = data.controllers?.[0]?.actualSize; return (usedStorage / (1024 * 1024)); // Rückgabe mit Erfolgsfall - - } catch (error) { - console.error('Fehler beim Abrufen der Daten:', error); - return -1; // Rückgabe mit Fehlerfall - } } @@ -74,8 +69,8 @@ class LonghornApiAdapter { // Iterate over each disk and sum up the values Object.values(data.disks).forEach(disk => { - totalStorageMaximum += disk.storageMaximum; - totalStorageAvailable += disk.storageAvailable; + totalStorageMaximum += disk.storageMaximum; + totalStorageAvailable += disk.storageAvailable; }); return { @@ -83,7 +78,7 @@ class LonghornApiAdapter { totalStorageAvailable }; -} + } } const longhornApiAdapter = new LonghornApiAdapter(); export default longhornApiAdapter; \ No newline at end of file diff --git a/src/server/services/project.service.ts b/src/server/services/project.service.ts index 1e2c5e7..62d60d2 100644 --- a/src/server/services/project.service.ts +++ b/src/server/services/project.service.ts @@ -28,7 +28,7 @@ class ProjectService { } async getAllProjects() { - return await unstable_cache(async () => await dataAccess.client.project.findMany({ + return await unstable_cache(() => dataAccess.client.project.findMany({ include: { apps: true }, diff --git a/src/server/services/pvc.service.ts b/src/server/services/pvc.service.ts index 09bd750..b2b8871 100644 --- a/src/server/services/pvc.service.ts +++ b/src/server/services/pvc.service.ts @@ -59,6 +59,7 @@ class PvcService { try { // Rufe Speicherverbrauchsdaten von getLonghornVolume ab const usage = await longhornApiAdapter.getLonghornVolume(volumeName); + console.log(usage) // Füge die Daten in das Array ein pvcUsageData.push({ pvcName, usage }); } catch (error) {