summaryrefslogtreecommitdiff
path: root/poll.go
diff options
context:
space:
mode:
Diffstat (limited to 'poll.go')
-rw-r--r--poll.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/poll.go b/poll.go
new file mode 100644
index 0000000..b7daeb9
--- /dev/null
+++ b/poll.go
@@ -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)
+}