early attempt at tablepb.Update()

This commit is contained in:
Jeff Carr 2025-02-23 03:18:18 -06:00
parent 6e948e0736
commit affb055c56
1 changed files with 37 additions and 30 deletions

View File

@ -61,17 +61,13 @@ func drawWindow(win *gadgets.BasicWindow) {
hyperWin = makeHypervisorsWindow(me.cluster.H)
})
var testWin *GenericWindow
grid.NewButton("all defined droplets", func() {
if testWin != nil {
testWin.Toggle()
var dropWin *GenericWindow
var dropTable *virtpb.DropletsTable
grid.NewButton("droplets", func() {
if dropWin != nil {
dropWin.Toggle()
return
}
d := me.cluster.GetDropletsPB()
testWin = makeDropletsWindow(d)
})
grid.NewButton("Running droplets", func() {
d := me.cluster.GetDropletsPB()
var found *virtpb.Droplets
found = virtpb.NewDroplets()
@ -83,19 +79,33 @@ func drawWindow(win *gadgets.BasicWindow) {
}
found.Append(vm)
}
makeDropletsWindow(found)
dropWin, dropTable = makeDropletsWindow(found)
dropWin.Win.Custom = func() {
log.Info("hiding droplet table window")
}
})
/*
var test2 *GenericWindow
grid.NewButton("test2", func() {
if test2 != nil {
test2.Toggle()
grid.NewButton("Update droplets table", func() {
if dropTable == nil {
log.Info("make the droplets window first")
return
}
test2 = makeDropletsWindow(me.machines)
dropTable.Update()
})
grid.NewButton("ConfigSave()", func() {
log.Info("todo: find this code")
})
var testWin *GenericWindow
grid.NewButton("create droplet", func() {
if testWin != nil {
testWin.Toggle()
return
}
d := me.cluster.GetDropletsPB()
testWin, _ = makeDropletsWindow(d)
})
*/
}
func findVersion(m *zoopb.Machine, pkgname string) string {
@ -106,7 +116,7 @@ func findVersion(m *zoopb.Machine, pkgname string) string {
return zood.Version
}
func makeDropletsWindow(pb *virtpb.Droplets) *GenericWindow {
func makeDropletsWindow(pb *virtpb.Droplets) (*GenericWindow, *virtpb.DropletsTable) {
win := NewGenericWindow("Droplets registered with Virtigo", "Buttons of things")
grid := win.Group.RawGrid()
grid.NewButton("Create", func() {
@ -122,6 +132,11 @@ func makeDropletsWindow(pb *virtpb.Droplets) *GenericWindow {
t.AddHostname()
t.AddMemory()
t.AddCpus()
t.AddTimeFunc("age", func(d *virtpb.Droplet) time.Time {
age := d.Current.OnSince.AsTime()
log.Info("age", d.Hostname, virtpb.FormatDuration(time.Since(age)))
return age
})
t.AddStringFunc("State", func(d *virtpb.Droplet) string {
if d.Current.State == virtpb.DropletState_ON {
return "ON"
@ -139,16 +154,8 @@ func makeDropletsWindow(pb *virtpb.Droplets) *GenericWindow {
tmp := strings.Join(macs, "\n")
return strings.TrimSpace(tmp)
})
/*
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()
})
*/
t.ShowTable()
return win
return win, t
}
func makeHypervisorsWindow(pb *virtpb.Hypervisors) *GenericWindow {