diff options
| author | Jeff Carr <[email protected]> | 2024-10-12 10:59:11 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-10-12 10:59:11 -0500 |
| commit | d08d9f99bee4d4e93a8beda780d8e9f6099e32cb (patch) | |
| tree | 78540be4d3b371569f59ee863621b03786a479c5 /poll.go | |
| parent | 0751e80559cbb34bc23639328938780c64063c92 (diff) | |
ugly but limping along progress
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'poll.go')
| -rw-r--r-- | poll.go | 57 |
1 files changed, 57 insertions, 0 deletions
@@ -0,0 +1,57 @@ +package main + +import ( + "strings" + "time" + + "go.wit.com/lib/gui/shell" + "go.wit.com/log" +) + +func (h HyperT) pollHypervisor() { + url := "http://" + h.Hostname + ":2520/vms" + log.Info("wget url =", url) + s := shell.Wget(url) + if s == nil { + return + } + var bytesSplice []byte + bytesSplice = s.Bytes() + // fmt.Fprintln(w, string(bytesSplice)) + for _, line := range strings.Split(string(bytesSplice), "\n") { + if line == "" { + continue + } + fields := strings.Fields(line) + if len(fields) < 2 { + continue + } + state := fields[0] + name := fields[1] + if state == "ON" { + log.Info("POLL", h.Hostname, "STATE:", state, "HOST:", name, "rest:", fields[2:]) + var found = false + for _, d := range me.droplets { + if d.Hostname == name { + log.Info("ALREADY RECORDED", d.Hostname) + found = true + d.lastpoll = time.Now() + if d.hname != h.Hostname { + log.Info("DROPLET", d.Hostname, "MOVED FROM", d.hname, "TO", d.Hostname) + } + + d.hname = h.Hostname + } + } + if found { + continue + } + var d DropletT + d.Hostname = name + d.hname = h.Hostname + me.droplets = append(me.droplets, d) + log.Info(name, "IS NEW. ADDED ON", h.Hostname) + } + } + // log.Info("i, s =", hostname, i, s) +} |
