package main

import (
	"time"

	pb "go.wit.com/lib/protobuf/virtbuf"
	"libvirt.org/go/libvirtxml"
)

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 {
	cluster   *pb.Cluster
	names     []string
	hypers    []*HyperT
	droplets  []*DropletT
	delay     time.Duration // how often to poll the hypervisors
	killcount int
	unstable  time.Time // the last time the cluster was incorrect
	changed   bool
}

// the stuff that is needed for a hypervisor
type HyperT struct {
	pb        *pb.Hypervisor // the Hypervisor protobuf
	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 {
	pb           *pb.Droplet        // the Droplet protobuf
	xml          *libvirtxml.Domain // a xml representation from libvirt
	h            *HyperT            // the hypervisor it's currently running on
	CurrentState string             // what the state of the droplet is ACTUALLY IS
	lastpoll     time.Time          // the last time the droplet was seen running
	starts       int                // how many times a start event has been attempted
}