virtigo/structs.go

49 lines
1.5 KiB
Go

package main
import "time"
var me virtigoT
// disable the GUI
func (b *virtigoT) Disable() {
// b.mainbox.Disable()
}
// enable the GUI
func (b *virtigoT) Enable() {
// b.mainbox.Enable()
}
// this app's variables
type virtigoT struct {
names []string
hypers []*HyperT
droplets []*DropletT
killcount int
unstable time.Time // the last time the cluster was incorrect
}
// the stuff that is needed for a hypervisor
type HyperT struct {
Hostname string // the hypervisor hostname
Active bool // is allowed to start new droplets
Scan func() // the function to run to scan the hypervisor
Autoscan bool // to scan or not to scan
Delay time.Duration // how often to poll the hypervisor
Dog *time.Ticker // the watchdog timer itself
lastpoll time.Time // the last time the hypervisor polled
killcount int
}
// the stuff that is needed for a hypervisor
type DropletT struct {
Hostname string // the name of the virtual machine. should be unique (probably enforce this forever)
ConfigState string // what the state of the droplet is SUPPOSED TO BE
CurrentState string // what the state of the droplet is ACTUALLY IS
hyperPreferred string // the hypervisor to prefer to run the droplet on
hname string // the hypervisor it's currently running on
h *HyperT // the hypervisor it's currently running on
lastpoll time.Time // the last time the droplet was seen running
starts int // how many times a start event has been attempted
}