package app import ( "sync" "github.com/luthermonson/go-proxmox" ) type Cluster struct { lock sync.Mutex pve ProxmoxClient Nodes map[string]*Node } type Node struct { lock sync.Mutex Name string `json:"name"` Cores uint64 `json:"cores"` Memory uint64 `json:"memory"` Swap uint64 `json:"swap"` Devices map[string]*Device `json:"devices"` Instances map[uint]*Instance `json:"instances"` pvenode *proxmox.Node } type InstanceType string const ( VM InstanceType = "VM" CT InstanceType = "CT" ) type Instance struct { lock sync.Mutex Type InstanceType `json:"type"` Name string `json:"name"` Proctype string `json:"cpu"` Cores uint64 `json:"cores"` Memory uint64 `json:"memory"` Swap uint64 `json:"swap"` Volumes map[string]*Volume `json:"volumes"` Nets map[uint]*Net `json:"nets"` Devices map[uint][]*Device `json:"devices"` pveconfig interface{} configDisks map[string]string configNets map[string]string configHostPCIs map[string]string } type Volume struct { Storage string `json:"storage"` Format string `json:"format"` Size uint64 `json:"size"` Volid string `json:"volid"` } type Net struct { Rate uint64 `json:"rate"` VLAN uint64 `json:"vlan"` } type Device struct { BusID string `json:"id"` DeviceName string `json:"device_name"` VendorName string `json:"vendor_name"` SubsystemDeviceName string `json:"subsystem_device_name"` SubsystemVendorName string `json:"subsystem_vendor_name"` Reserved bool `json:"reserved"` }