summaryrefslogtreecommitdiff
path: root/structs.go
blob: d67f7c0584697ff68bbfc1a8a650583b6187b1ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main

import (
	"time"

	pb "go.wit.com/lib/protobuf/virtbuf"
)

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
	killcount int
	unstable  time.Time // the last time the cluster was incorrect
}

// the stuff that is needed for a hypervisor
type HyperT struct {
	pb        *pb.Hypervisor // the Hypervisor protobuf
	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 {
	pb             *pb.Droplet // the Droplet protobuf
	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
}