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) State 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 }