Update server listing and associated logic to pull from the panel dynamiacally
This commit is contained in:
parent
952dff854e
commit
fb9c106448
26 changed files with 384 additions and 239 deletions
|
@ -4,6 +4,7 @@ export interface Allocation {
|
|||
ip: string;
|
||||
alias: string | null;
|
||||
port: number;
|
||||
default: boolean;
|
||||
}
|
||||
|
||||
export interface Server {
|
||||
|
@ -36,6 +37,7 @@ export const rawDataToServerObject = (data: any): Server => ({
|
|||
ip: data.allocation.ip,
|
||||
alias: null,
|
||||
port: data.allocation.port,
|
||||
default: true,
|
||||
}],
|
||||
limits: { ...data.limits },
|
||||
featureLimits: { ...data.feature_limits },
|
||||
|
|
29
resources/scripts/api/server/getServerResourceUsage.ts
Normal file
29
resources/scripts/api/server/getServerResourceUsage.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
import http from '@/api/http';
|
||||
|
||||
export type ServerPowerState = 'offline' | 'starting' | 'running' | 'stopping';
|
||||
|
||||
export interface ServerStats {
|
||||
status: ServerPowerState;
|
||||
isSuspended: boolean;
|
||||
memoryUsageInBytes: number;
|
||||
cpuUsagePercent: number;
|
||||
diskUsageInBytes: number;
|
||||
networkRxInBytes: number;
|
||||
networkTxInBytes: number;
|
||||
}
|
||||
|
||||
export default (server: string): Promise<ServerStats> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
http.get(`/api/client/servers/${server}/resources`)
|
||||
.then(({ data: { attributes } }) => resolve({
|
||||
status: attributes.current_state,
|
||||
isSuspended: attributes.is_suspended,
|
||||
memoryUsageInBytes: attributes.resources.memory_bytes,
|
||||
cpuUsagePercent: attributes.resources.cpu_absolute,
|
||||
diskUsageInBytes: attributes.resources.disk_bytes,
|
||||
networkRxInBytes: attributes.resources.network_rx_bytes,
|
||||
networkTxInBytes: attributes.resources.network_tx_bytes,
|
||||
}))
|
||||
.catch(reject);
|
||||
});
|
||||
};
|
Reference in a new issue