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) }