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
}

// 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
	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
}