talking with zood again

This commit is contained in:
Jeff Carr 2025-03-06 05:16:00 -06:00
parent 8c7f6c3c1b
commit e85a8ae69f
5 changed files with 19 additions and 25 deletions

View File

@ -54,6 +54,10 @@ func doGui() {
makeZoodWin() makeZoodWin()
}) })
grid.NewButton("Cluster Events", func() {
log.Info("todo: start a list here!")
})
// sit here forever refreshing the GUI // sit here forever refreshing the GUI
for { for {
refresh() refresh()

25
http.go
View File

@ -41,31 +41,6 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
if route == "/machine" { if route == "/machine" {
handleMachine(r, w, hostname, msg) handleMachine(r, w, hostname, msg)
return return
/*
var m *zoopb.Machine
m = new(zoopb.Machine)
if err := m.Unmarshal(msg); err != nil {
log.Info("zoo host sent unknown machine protobuf len", len(msg))
forgepb.IdentifyProtobuf(msg)
log.Info("error =", err)
return
}
log.Log(INFO, "proto.Unmarshal() worked on wire message len", len(msg), "from", m.Hostname)
b := me.upgrade[m.Hostname]
switch updateMachine(m) {
case "upgrade":
if b {
fmt.Fprintln(w, "apt update")
me.upgrade[m.Hostname] = false
} else {
fmt.Fprintln(w, "upgrade")
}
default:
fmt.Fprintln(w, "notsure")
}
return
*/
} }
if route == "/status" { if route == "/status" {

View File

@ -4,6 +4,7 @@
package main package main
import ( import (
"fmt"
"net/http" "net/http"
"strings" "strings"
"time" "time"
@ -53,6 +54,7 @@ func handleMachine(r *http.Request, w http.ResponseWriter, hostname string, data
log.Info("hostname ua changed len =", len(data), ra, hostname, ua) log.Info("hostname ua changed len =", len(data), ra, hostname, ua)
m.UserAgent = ua m.UserAgent = ua
} }
fmt.Fprintln(w, "upgrade")
// log.Info("update machine protobuf", hostname) // log.Info("update machine protobuf", hostname)
updateMachine(newm) updateMachine(newm)
} }

View File

@ -4,6 +4,7 @@
package main package main
import ( import (
"sync"
"time" "time"
"go.wit.com/gui" "go.wit.com/gui"
@ -33,6 +34,7 @@ type zookeep struct {
} }
type stdTableWin struct { type stdTableWin struct {
sync.Mutex
win *gadgets.GenericWindow // the machines gui window win *gadgets.GenericWindow // the machines gui window
box *gui.Node // the machines gui parent box widget box *gui.Node // the machines gui parent box widget
TB *zoopb.MachinesTable // the machines gui table buffer TB *zoopb.MachinesTable // the machines gui table buffer

View File

@ -34,6 +34,8 @@ func makeZoodWin() {
} }
func doMachinesUpgradeTable() { func doMachinesUpgradeTable() {
me.zood.Lock()
defer me.zood.Unlock()
if me.zood.TB != nil { if me.zood.TB != nil {
me.zood.TB.Delete() me.zood.TB.Delete()
me.zood.TB = nil me.zood.TB = nil
@ -45,6 +47,7 @@ func doMachinesUpgradeTable() {
log.Info("upgrade machine", m.Hostname, "memory", m.Memory/(1024*1024*1024)) log.Info("upgrade machine", m.Hostname, "memory", m.Memory/(1024*1024*1024))
log.Info("ADD THE CODE TO TRIGGER AN UPGRADE HERE") log.Info("ADD THE CODE TO TRIGGER AN UPGRADE HERE")
log.Info("ADD THE CODE TO TRIGGER AN UPGRADE HERE") log.Info("ADD THE CODE TO TRIGGER AN UPGRADE HERE")
m.Upgrade = true
} }
me.zood.TB.Custom(f) me.zood.TB.Custom(f)
log.Info("table has uuid", me.zood.TB.GetUuid()) log.Info("table has uuid", me.zood.TB.GetUuid())
@ -66,6 +69,14 @@ func AddMachinesPB(tbox *gui.Node, pb *zoopb.Machines) *zoopb.MachinesTable {
return findVersion(m, "zood") return findVersion(m, "zood")
}) })
// show if the machine needs to be upgraded
t.AddStringFunc("triggered?", func(m *zoopb.Machine) string {
if m.Upgrade {
return "yes"
}
return ""
})
t.AddTimeFunc("age", func(m *zoopb.Machine) time.Time { t.AddTimeFunc("age", func(m *zoopb.Machine) time.Time {
return m.Laststamp.AsTime() return m.Laststamp.AsTime()
}) })