Local modifications to ClusterLabs/Anvil by Alteeve
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
2.9 KiB

type AnvilCPU = {
allocated: number;
cores: number;
hosts: {
[hostUuid: string]: {
cores: number;
model: string;
name: string;
threads: number;
uuid: string;
vendor: string;
};
};
threads: number;
};
type AnvilMemory = {
allocated: string;
reserved: string;
total: string;
};
type AnvilMemoryCalcable = {
allocated: bigint;
reserved: bigint;
total: bigint;
};
type AnvilNetworkBondLink = {
link_name: string;
link_uuid: string;
link_speed: number;
link_state: 'optimal' | 'degraded' | 'down';
is_active: boolean;
};
type AnvilNetworkHostBond = {
bond_name: string;
bond_uuid: string;
links: AnvilNetworkBondLink[];
};
type AnvilNetworkHosts = {
host_name: string;
host_uuid: string;
bonds: AnvilNetworkHostBond[];
};
type AnvilNetwork = {
hosts: AnvilNetworkHosts[];
};
type AnvilServer = {
anvilName: string;
anvilUUID: string;
serverName: string;
serverUUID: string;
serverState:
| 'running'
| 'idle'
| 'paused'
| 'in shutdown'
| 'shut off'
| 'crashed'
| 'pmsuspended'
| 'migrating';
serverHostUUID: string;
};
type AnvilServers = AnvilServer[];
type AnvilSharedStorageGroup = {
storage_group_free: string;
storage_group_name: string;
storage_group_total: string;
storage_group_uuid: string;
};
type AnvilSharedStorage = {
storage_groups: AnvilSharedStorageGroup[];
total_size: string;
total_free: string;
};
type AnvilStatusHost = {
host_name: string;
host_uuid: string;
maintenance_mode: boolean;
server_count: number;
state: 'offline' | 'booted' | 'crmd' | 'in_ccm' | 'online';
state_message: string;
state_percent: number;
};
type AnvilStatus = {
anvil_state: 'optimal' | 'not_ready' | 'degraded';
hosts: AnvilStatusHost[];
};
type AnvilListItem = {
anvil_name: string;
anvil_uuid: string;
} & AnvilStatus;
type AnvilList = {
anvils: AnvilListItem[];
};
type APIAnvilOverviewArray = Array<{
anvilDescription: string;
anvilName: string;
anvilUUID: string;
hosts: Array<{
hostName: string;
hostType: string;
hostUUID: string;
}>;
}>;
type APIAnvilOverview = {
description: string;
hosts: {
[uuid: string]: {
name: string;
type: string;
uuid: string;
};
};
name: string;
uuid: string;
};
type APIAnvilDetail = {
hosts: {
[uuid: string]: {
maintenance: boolean;
name: string;
serverCount: number;
state: AnvilStatusHost['state'];
stateProgress: number;
uuid: string;
};
};
name: string;
state: AnvilStatus['anvil_state'];
uuid: string;
};
type APIAnvilOverviewList = {
[uuid: string]: APIAnvilOverview;
};
type APIAnvilStorageGroupCalcable = {
free: bigint;
name: string;
size: bigint;
uuid: string;
};
type APIAnvilSharedStorageOverview = {
storageGroups: {
[uuid: string]: APIAnvilStorageGroupCalcable;
};
totalFree: bigint;
totalSize: bigint;
};