Ready to build sysinfo route screen

This commit is contained in:
2023-09-08 09:45:41 +02:00
parent bd5ea1fb23
commit f14e8a8e58
7 changed files with 236 additions and 4 deletions

View File

@ -10,7 +10,100 @@ export interface ServerConfig {
let config: ServerConfig | null = null;
export interface ServerInfo {}
export interface ServerSystemInfo {
hypervisor: HypervisorInfo;
system: SystemInfo;
}
interface HypervisorInfo {
type: string;
hyp_version: number;
lib_version: number;
capabilities: string;
free_memory: number;
hostname: string;
node: {
cpu_model: string;
memory_size: number;
number_of_active_cpus: number;
cpu_frequency_mhz: number;
number_of_numa_cell: number;
number_of_cpu_socket_per_node: number;
number_of_core_per_sockets: number;
number_of_threads_per_sockets: number;
};
}
interface SystemInfo {
IS_SUPPORTED: boolean;
SUPPORTED_SIGNALS: string[];
MINIMUM_CPU_UPDATE_INTERVAL: {
secs: number;
nanos: number;
};
global_cpu_info: GlobalCPUInfo;
cpus: CpuCore[];
physical_core_count: number;
total_memory: number;
free_memory: number;
available_memory: number;
used_memory: number;
total_swap: number;
free_swap: number;
used_swap: number;
components: SysComponent;
users: [];
disks: DiskInfo[];
networks: [];
uptime: number;
boot_time: number;
load_average: SysLoadAverage;
name: string;
kernel_version: string;
os_version: string;
long_os_version: string;
distribution_id: string;
host_name: string;
}
interface GlobalCPUInfo {
cpu_usage: number;
name: string;
vendor_id: string;
brand: string;
frequency: number;
}
interface CpuCore {
cpu_usage: number;
name: string;
vendor_id: string;
brand: string;
frequency: number;
}
interface SysComponent {
temperature: number;
max: number;
critical: number;
label: string;
}
interface DiskInfo {
DiskKind: "HDD" | "SSD";
name: string;
file_system: number[];
mount_point: string;
total_space: number;
available_space: number;
is_removable: boolean;
}
interface SysLoadAverage {
one: number;
five: number;
fifteen: number;
}
export class ServerApi {
/**
@ -36,7 +129,7 @@ export class ServerApi {
/**
* Get server information
*/
static async SystemInfo(): Promise<ServerInfo> {
static async SystemInfo(): Promise<ServerSystemInfo> {
return (
await APIClient.exec({
method: "GET",