vsphere-infra
Version:
100 lines (91 loc) • 2.28 kB
text/typescript
/*
* Copyright 2014-2021 Firestack, all rights reserved.
*/
import * as MoGeneral from './mo/mo.general';
import * as MoHost from './mo/mo.host.models';
import * as MoVM from './mo/mo.vm.models';
import * as MoDatastore from './mo/mo.datastore.models';
import * as MoCluster from './mo/mo.cluster.models';
import * as MoNetwork from './mo/mo.network.models';
import * as MoFolder from './mo/mo.folder.models';
import * as MoRespool from './mo/mo.respool.models';
import * as MoSwitch from './mo/mo.vswitch.models';
export const MoCl = {
Host: MoHost,
Datastore: MoDatastore,
VM: MoVM,
Cluster: MoCluster,
Folder: MoFolder,
General: MoGeneral,
ResourcePool: MoRespool,
Network: MoNetwork,
Switch: MoSwitch,
};
export interface VsphereTarget {
key: string;
url: string;
username?: string;
password?: string;
cert?: string;
watch?: boolean;
skipFetch?: boolean;
}
export class VsphereEventWebhook {
name: string;
url: string;
events: {[eventType: string]: boolean} = {};
headers?: {[headerName: string]: string} = {};
data?: {[key: string]: any} = {};
}
export interface VsphereDatacenterEvent<T = any> {
eventTime: number;
eventType?: string;
sourceMo?: any;
sourceKey?: string;
data: T;
moData?: any;
extra?: any;
}
export interface VsphereDatacenterUtilizationSnapshot {
/** unix ts in seconds % 86400 */
ts: number;
/** vm count */
v: number;
/** host count */
h: number;
/** cpu utilization */
c: number;
/** mem utilization */
m: number;
/** storage utilization */
s: number;
}
export type VsphereDatacenterUtilizationSnapshotData = [
number, /** ts */
number, /** v */
number, /** h */
number, /** c */
number, /** m */
number, /** s */
];
export interface VsphereDatacenterUtilizationSummary {
t: number;
hostCount: number;
vmCount: number;
percent: { cpu: number; mem: number; disk: number; };
overview: {
totalCpu: number;
consumedCpu: number;
percentCpu: number;
totalMem: number;
consumedMem: number;
percentMem: number;
totalStorage: number;
consumedStorage: number;
percentStorage: number;
};
clusterSummary: any;
hostStats: any[];
storageStats: any[];
history: VsphereDatacenterUtilizationSnapshotData[];
}