113 lines
2.5 KiB
Go
113 lines
2.5 KiB
Go
package zoopb
|
|
|
|
import (
|
|
"go.wit.com/gui"
|
|
"go.wit.com/lib/protobuf/guipb"
|
|
"go.wit.com/log"
|
|
)
|
|
|
|
func (x *Machines) NewTable(title string) *MachinesTable {
|
|
t := new(MachinesTable)
|
|
t.x = x
|
|
pb := new(guipb.Table)
|
|
pb.Title = title
|
|
pb.Order = append(pb.Order, "Memory")
|
|
t.pb = pb
|
|
return t
|
|
}
|
|
|
|
func (t *MachinesTable) AddStringFunc(title string, f func(*Machine) string) {
|
|
t.pb.Order = append(t.pb.Order, title)
|
|
|
|
sf := new(MachineStringFunc)
|
|
sf.title = title
|
|
sf.f = f
|
|
t.stringFuncs = append(t.stringFuncs, sf)
|
|
}
|
|
|
|
func (t *MachinesTable) AddHostname() {
|
|
log.Info("zoopb: GOT TO AddHostname()")
|
|
t.pb.Order = append(t.pb.Order, "Hostname")
|
|
t.pb.Order = append(t.pb.Order, "Cpus")
|
|
t.pb.Order = append(t.pb.Order, "Memory")
|
|
}
|
|
|
|
func (mt *MachinesTable) MakeTable() {
|
|
for _, name := range mt.pb.Order {
|
|
log.Info("zoopb: looking for row name()", name)
|
|
switch name {
|
|
case "Hostname":
|
|
r := new(guipb.StringRow)
|
|
r.Header = new(guipb.Widget)
|
|
r.Header.Name = "Hostname"
|
|
all := mt.x.All()
|
|
for all.Scan() {
|
|
m := all.Next()
|
|
r.Vals = append(r.Vals, m.Hostname)
|
|
log.Info("zoopb: adding hostname", r.Vals)
|
|
}
|
|
mt.pb.StringRows = append(mt.pb.StringRows, r)
|
|
case "Cpus":
|
|
i := new(guipb.IntRow)
|
|
i.Header = new(guipb.Widget)
|
|
i.Header.Name = "Cpus"
|
|
all := mt.x.All()
|
|
for all.Scan() {
|
|
m := all.Next()
|
|
i.Vals = append(i.Vals, m.Cpus)
|
|
log.Info("zoopb: adding cpus", i.Vals)
|
|
}
|
|
mt.pb.IntRows = append(mt.pb.IntRows, i)
|
|
case "Memory":
|
|
i := new(guipb.IntRow)
|
|
i.Header = new(guipb.Widget)
|
|
i.Header.Name = "Memories"
|
|
all := mt.x.All()
|
|
for all.Scan() {
|
|
m := all.Next()
|
|
i.Vals = append(i.Vals, m.Memory)
|
|
log.Info("zoopb: adding cpus", i.Vals)
|
|
}
|
|
mt.pb.IntRows = append(mt.pb.IntRows, i)
|
|
default:
|
|
// mt.addFuncRow(name)
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
func (mt *MachinesTable) addRow(name string) {
|
|
i := new(guipb.IntRow)
|
|
i.Header = new(guipb.Widget)
|
|
i.Header.Name = "Memories"
|
|
all := t.x.All()
|
|
for all.Scan() {
|
|
m := all.Next()
|
|
i.Vals = append(i.Vals, m.Memory)
|
|
log.Info("zoopb: adding cpus", i.Vals)
|
|
}
|
|
t.pb.IntRows = append(t.pb.IntRows, i)
|
|
}
|
|
*/
|
|
|
|
func (mt *MachinesTable) ShowTable() {
|
|
log.Info("zoopb.ShowTable() SENDING TO GUI")
|
|
mt.MakeTable()
|
|
gui.ShowTable(mt.pb)
|
|
}
|
|
|
|
type MachineStringFunc struct {
|
|
title string
|
|
f func(*Machine) string
|
|
}
|
|
|
|
type MachinesTable struct {
|
|
// gt *gui.NodeTable
|
|
pb *guipb.Table
|
|
x *Machines
|
|
hostnames []string
|
|
stringFuncs []*MachineStringFunc
|
|
// columns []*gui.NodeColumn
|
|
// order []*gui.NodeColumn
|
|
}
|