summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doGui.go83
1 files changed, 60 insertions, 23 deletions
diff --git a/doGui.go b/doGui.go
index 1a83491..bb3328d 100644
--- a/doGui.go
+++ b/doGui.go
@@ -6,6 +6,7 @@ package main
// An app to submit patches for the 30 GO GUI repos
import (
+ "fmt"
"os"
"strings"
"time"
@@ -62,7 +63,6 @@ func drawWindow(win *gadgets.BasicWindow) {
})
var dropWin *GenericWindow
- var dropTable *virtpb.DropletsTable
grid.NewButton("droplets", func() {
if dropWin != nil {
dropWin.Toggle()
@@ -79,22 +79,25 @@ func drawWindow(win *gadgets.BasicWindow) {
}
found.Append(vm)
}
- dropWin, dropTable = makeDropletsWindow(found)
+ dropWin, _ = makeDropletsWindow(found)
dropWin.Win.Custom = func() {
log.Info("hiding droplet table window")
}
})
- grid.NewButton("Update droplets table", func() {
- if dropTable == nil {
- log.Info("make the droplets window first")
+ var eventWin *GenericWindow
+ grid.NewButton("events)", func() {
+ log.Info("todo: make code for this")
+ if eventWin != nil {
+ eventWin.Toggle()
return
}
- dropTable.Update()
+ e := me.cluster.GetEventsPB()
+ eventWin = makeEventsWindow(e)
})
grid.NewButton("ConfigSave()", func() {
- log.Info("todo: find this code")
+ log.Info("todo: make code for this")
})
var testWin *GenericWindow
@@ -118,6 +121,8 @@ func findVersion(m *zoopb.Machine, pkgname string) string {
func makeDropletsWindow(pb *virtpb.Droplets) (*GenericWindow, *virtpb.DropletsTable) {
win := NewGenericWindow("Droplets registered with Virtigo", "Buttons of things")
+ t := pb.NewTable("test 2")
+
grid := win.Group.RawGrid()
grid.NewButton("Create", func() {
log.Info("todo: open create window here")
@@ -126,10 +131,16 @@ func makeDropletsWindow(pb *virtpb.Droplets) (*GenericWindow, *virtpb.DropletsTa
log.Info("todo")
})
+ grid.NewButton("Update", func() {
+ t.Update()
+ })
+
tbox := win.Bottom.Box()
- t := pb.NewTable("test 2")
t.SetParent(tbox)
t.AddHostname()
+ t.AddStringFunc("location", func(d *virtpb.Droplet) string {
+ return d.Current.Hypervisor
+ })
t.AddMemory()
t.AddCpus()
t.AddTimeFunc("age", func(d *virtpb.Droplet) time.Time {
@@ -171,22 +182,48 @@ func makeHypervisorsWindow(pb *virtpb.Hypervisors) *GenericWindow {
t.AddHostname()
t.AddMemory()
t.AddCpus()
- /*
- t.AddStringFunc("State", func(d *virtpb.Hypervisor) string {
- if d.Current.State == virtpb.HypervisorState_ON {
- return "ON"
+ t.AddTimeFunc("last poll", func(h *virtpb.Hypervisor) time.Time {
+ hm := me.hmap[h]
+ tmp := hm.lastpoll
+ log.Info("poll age", h.Hostname, virtpb.FormatDuration(time.Since(tmp)))
+ return tmp
+ })
+ t.AddKillcount()
+ t.AddStringFunc("droplets", func(h *virtpb.Hypervisor) string {
+ var totalDroplets int
+ var totalUnknownDroplets int
+ // dur := time.Since(h.lastpoll)
+ // tmp := virtpb.FormatDuration(dur)
+ // fmt.Fprintln(w, h.pb.Hostname, "killcount =", h.killcount, "lastpoll:", tmp)
+ hm := me.hmap[h]
+ for name, _ := range hm.lastDroplets {
+ totalDroplets += 1
+ d := me.cluster.FindDropletByName(name)
+ if d == nil {
+ totalUnknownDroplets += 1
}
- return "UNKNOWN"
- })
- */
- /*
- t.AddStringFunc("zood", func(m *zoopb.Machine) string {
- return findVersion(m, "zood")
- })
- t.AddTimeFunc("age", func(m *zoopb.Machine) time.Time {
- return m.Laststamp.AsTime()
- })
- */
+ }
+ log.Printf("Total Droplets %d total libvirt only droplets = %d\n", totalDroplets, totalUnknownDroplets)
+ return fmt.Sprintf("%d", totalDroplets)
+ })
+ t.ShowTable()
+ return win
+}
+
+func makeEventsWindow(pb *virtpb.Events) *GenericWindow {
+ win := NewGenericWindow("Cluster Events", "Buttons of things")
+ grid := win.Group.RawGrid()
+ grid.NewButton("List", func() {
+ log.Info("list...")
+ })
+ tmp := fmt.Sprintf("num of events = %d", pb.Len())
+ grid.NewLabel(tmp)
+
+ tbox := win.Bottom.Box() // a vertical box (like a stack of books)
+ t := pb.NewTable("test 2")
+ t.SetParent(tbox)
+ t.AddDroplet()
+ t.AddHypervisor()
t.ShowTable()
return win
}