diff options
Diffstat (limited to 'poll.go')
| -rw-r--r-- | poll.go | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -63,3 +63,31 @@ func findDroplet(name string) *DropletT { } return nil } + +func clusterHealthy() bool { + var good = true + for _, d := range me.droplets { + if d.State != "ON" { + continue + } + dur := time.Since(d.lastpoll) // Calculate the elapsed time + if d.CurrentState != "ON" { + log.Info("BAD STATE ", d.Hostname, "State =", d.State, "CurrentState =", d.CurrentState, shell.FormatDuration(dur)) + good = false + } else { + dur := time.Since(d.lastpoll) // Calculate the elapsed time + if dur > time.Minute { + log.Info("GOOD STATE MISSING", d.Hostname, d.hname, shell.FormatDuration(dur)) + good = false + d.CurrentState = "MISSING" + } + log.Info("GOOD STATE ON", d.Hostname, d.hname, shell.FormatDuration(dur)) + } + } + if good { + log.Info("GOOD=true") + } else { + log.Info("GOOD=false") + } + return good +} |
