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.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.Log(POLL, h.Hostname, "STATE:", state, "HOST:", name, "rest:", fields[2:]) var found = false for _, d := range me.droplets { if d.Hostname == name { log.Log(INFO, "ALREADY RECORDED", d.Hostname) found = true d.lastpoll = time.Now() // log.Info("ALREADY RECORDED", d.Hostname, d.lastpoll) if d.hname != h.Hostname { log.Log(EVENT, "DROPLET", d.Hostname, "MOVED FROM", d.hname, "TO", d.Hostname) } d.hname = h.Hostname } } if found { continue } var d = new(DropletT) d.Hostname = name d.hname = h.Hostname d.lastpoll = time.Now() me.droplets = append(me.droplets, d) log.Log(EVENT, name, "IS NEW. ADDED ON", h.Hostname) } } // log.Info("i, s =", hostname, i, s) }