Added LXC resource page

This commit is contained in:
2023-03-21 22:45:56 +01:00
parent 4a997778e6
commit c66d035a1c
10 changed files with 212 additions and 68 deletions

52
hooks/useResource.ts Normal file
View File

@@ -0,0 +1,52 @@
import { useQueries } from "react-query";
import useAuthStore from "../stores/useAuthStore";
import { ResourceType } from "./useNode";
interface ResourceRddData {
cpu: number;
disk: number;
maxdisk: number;
mem: number;
maxmem: number;
netin: number;
netout: number;
}
export function useResource(
node: string,
type: ResourceType,
vmid: string | number
) {
console.log({ node, type, vmid });
const http = useAuthStore((state) => state.http);
const [rddData, config] = useQueries([
{
queryKey: ["nodes", node, type, vmid, "rdd"],
queryFn: () =>
http.get<{ data: ResourceRddData[] }>(
`/api2/json/nodes/${node}/${type}/${vmid}/rrddata`,
{
params: {
timeframe: "hour",
},
}
),
enabled: !!(node && vmid),
select: (data): ResourceRddData => data.data.data.at(-1),
},
{
queryKey: ["nodes", node, type, vmid, "config"],
queryFn: () =>
http.get<{ data: object }>(
`/api2/json/nodes/${node}/${type}/${vmid}/config`
),
enabled: !!(node && vmid),
select: (data): object => data.data.data,
},
]);
return {
rddData,
config,
};
}