diff options
Diffstat (limited to 'poll.go')
| -rw-r--r-- | poll.go | 36 |
1 files changed, 21 insertions, 15 deletions
@@ -10,7 +10,7 @@ import ( func (h HyperT) pollHypervisor() { url := "http://" + h.Hostname + ":2520/vms" - log.Log(INFO, "wget url =", url) + log.Log(POLL, "wget url =", url) s := shell.Wget(url) if s == nil { return @@ -30,30 +30,36 @@ func (h HyperT) pollHypervisor() { 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 := findDroplet(name) + if d != nil { + log.Log(INFO, "ALREADY RECORDED", d.Hostname) + d.lastpoll = time.Now() + d.CurrentState = "ON" + // 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) + // this is a new unknown droplet (not in the config file) + d = new(DropletT) d.Hostname = name d.hname = h.Hostname d.lastpoll = time.Now() + d.CurrentState = "ON" me.droplets = append(me.droplets, d) log.Log(EVENT, name, "IS NEW. ADDED ON", h.Hostname) } } // log.Info("i, s =", hostname, i, s) } + +func findDroplet(name string) *DropletT { + for _, d := range me.droplets { + if d.Hostname == name { + return d + } + } + return nil +} |
