summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--machine.gui.go209
-rw-r--r--machine.proto2
2 files changed, 1 insertions, 210 deletions
diff --git a/machine.gui.go b/machine.gui.go
deleted file mode 100644
index 8a5572f..0000000
--- a/machine.gui.go
+++ /dev/null
@@ -1,209 +0,0 @@
-package zoopb
-
-import (
- "time"
-
- "go.wit.com/gui"
- "go.wit.com/lib/protobuf/guipb"
- "go.wit.com/log"
- timestamppb "google.golang.org/protobuf/types/known/timestamppb"
-)
-
-func (x *Machines) NewTable(title string) *MachinesTable {
- t := new(MachinesTable)
- t.x = x
- pb := new(guipb.Table)
- pb.Title = title
- 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) AddIntFunc(title string, f func(*Machine) int) {
- t.pb.Order = append(t.pb.Order, title)
-
- sf := new(MachineIntFunc)
- sf.title = title
- sf.f = f
- t.intFuncs = append(t.intFuncs, sf)
-}
-
-func (t *MachinesTable) AddTimeFunc(title string, f func(*Machine) time.Time) {
- t.pb.Order = append(t.pb.Order, title)
-
- sf := new(MachineTimeFunc)
- sf.title = title
- sf.f = f
- t.timeFuncs = append(t.timeFuncs, sf)
-}
-
-func (t *MachinesTable) AddHostname() {
- t.pb.Order = append(t.pb.Order, "Hostname")
-}
-
-func (t *MachinesTable) AddMemory() {
- t.pb.Order = append(t.pb.Order, "Memory")
-}
-
-func (t *MachinesTable) AddCpus() {
- t.pb.Order = append(t.pb.Order, "Cpus")
-}
-
-func (mt *MachinesTable) doStringFunc(name string) bool {
- for _, sf := range mt.stringFuncs {
- if sf.title != name {
- continue
- }
- log.Info("zoopb: found stringfunc name:", name)
- r := new(guipb.StringRow)
- r.Header = new(guipb.Widget)
- r.Header.Name = name
- all := mt.x.All()
- for all.Scan() {
- m := all.Next()
- r.Vals = append(r.Vals, sf.f(m))
- log.Info("zoopb: adding", name, r.Vals)
- }
- mt.pb.StringRows = append(mt.pb.StringRows, r)
- return true
- }
- return false
-}
-
-func (mt *MachinesTable) doIntFunc(name string) bool {
- for _, sf := range mt.intFuncs {
- if sf.title != name {
- continue
- }
- log.Info("zoopb: found intfunc name:", name)
- r := new(guipb.IntRow)
- r.Header = new(guipb.Widget)
- r.Header.Name = name
- all := mt.x.All()
- for all.Scan() {
- m := all.Next()
- r.Vals = append(r.Vals, int64(sf.f(m)))
- log.Info("zoopb: adding", name, r.Vals)
- }
- mt.pb.IntRows = append(mt.pb.IntRows, r)
- return true
- }
- return false
-}
-
-func (mt *MachinesTable) doTimeFunc(name string) bool {
- for _, sf := range mt.timeFuncs {
- if sf.title != name {
- continue
- }
- log.Info("zoopb: found timefunc name:", name)
- r := new(guipb.TimeRow)
- r.Header = new(guipb.Widget)
- r.Header.Name = name
- all := mt.x.All()
- for all.Scan() {
- m := all.Next()
- t := sf.f(m)
- r.Vals = append(r.Vals, timestamppb.New(t)) // convert to protobuf time
- log.Info("zoopb: adding", name, r.Vals)
- }
- mt.pb.TimeRows = append(mt.pb.TimeRows, r)
- return true
- }
- return false
-}
-
-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 = name
- all := mt.x.All()
- for all.Scan() {
- m := all.Next()
- r.Vals = append(r.Vals, m.Hostname)
- log.Info("zoopb: adding", name, r.Vals)
- }
- mt.pb.StringRows = append(mt.pb.StringRows, r)
- continue
- case "Cpus":
- i := new(guipb.IntRow)
- i.Header = new(guipb.Widget)
- i.Header.Name = name
- all := mt.x.All()
- for all.Scan() {
- m := all.Next()
- i.Vals = append(i.Vals, m.Cpus)
- log.Info("zoopb: adding", name, i.Vals)
- }
- mt.pb.IntRows = append(mt.pb.IntRows, i)
- continue
- case "Memory":
- i := new(guipb.IntRow)
- i.Header = new(guipb.Widget)
- i.Header.Name = name
- all := mt.x.All()
- for all.Scan() {
- m := all.Next()
- i.Vals = append(i.Vals, m.Memory)
- log.Info("zoopb: adding", name, i.Vals)
- }
- mt.pb.IntRows = append(mt.pb.IntRows, i)
- continue
- default:
- // mt.addFuncRow(name)
- }
- log.Info("zoopb: didn't find name. trying StringFuncs", name)
- if mt.doStringFunc(name) {
- continue
- }
- if mt.doIntFunc(name) {
- continue
- }
- if mt.doTimeFunc(name) {
- continue
- }
- }
-}
-
-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 MachineIntFunc struct {
- title string
- f func(*Machine) int
-}
-
-type MachineTimeFunc struct {
- title string
- f func(*Machine) time.Time
-}
-
-type MachinesTable struct {
- // gt *gui.NodeTable
- pb *guipb.Table
- x *Machines
- hostnames []string
- stringFuncs []*MachineStringFunc
- intFuncs []*MachineIntFunc
- timeFuncs []*MachineTimeFunc
-}
diff --git a/machine.proto b/machine.proto
index ebb9c9f..fa3a9a5 100644
--- a/machine.proto
+++ b/machine.proto
@@ -20,7 +20,7 @@ message Machine { // `autogenpb:marshal`
string userAgent = 10;
}
-message Machines { // `autogenpb:marshal`
+message Machines { // `autogenpb:marshal` `autogenpb:gui`
string uuid = 1; // `autogenpb:uuid:b57e7fac-a8fc-4949-9d50-fa38312dec87`
string version = 2; // `autogenpb:version:v0.0.1`
repeated Machine machines = 3;