Added LXC resource page
This commit is contained in:
52
hooks/useResource.ts
Normal file
52
hooks/useResource.ts
Normal 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,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user