summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--http.go14
-rw-r--r--poll.go3
-rw-r--r--structs.go13
3 files changed, 21 insertions, 9 deletions
diff --git a/http.go b/http.go
index ebcaa70..85dc520 100644
--- a/http.go
+++ b/http.go
@@ -67,10 +67,20 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "GOOD=false")
}
for _, h := range me.hypers {
+ url := "http://" + h.Hostname + ":2520/kill"
dur := time.Since(h.lastpoll) // Calculate the elapsed time
- if dur > 2 * time.Minute {
- url := "http://" + h.Hostname + ":2520/kill"
+ if dur > 90 * time.Second {
log.Info("KILL DAEMON ON", h.Hostname, shell.FormatDuration(dur), "curl", url)
+ // s := shell.Wget(url)
+ // log.Info("curl got:", s)
+ h.lastpoll = time.Now()
+ h.killcount += 1
+ }
+ if h.killcount != 0 {
+ log.Info("KILL count =", h.killcount, "FOR", h.Hostname, dur, "curl", url)
+ }
+ if h.killcount > 10 {
+ log.Info("KILL count is greater than 10 for host", h.Hostname, dur, "curl", url)
}
// l := shell.FormatDuration(dur)
// log.Warn("HOST =", h.Hostname, "Last poll =", l)
diff --git a/poll.go b/poll.go
index 6d7ebc7..2979052 100644
--- a/poll.go
+++ b/poll.go
@@ -56,6 +56,7 @@ func (h *HyperT) pollHypervisor() {
}
}
h.lastpoll = time.Now()
+ h.killcount = 0 // poll worked. reset killcount
}
func findDroplet(name string) *DropletT {
@@ -88,7 +89,7 @@ func clusterHealthy() bool {
good = false
d.CurrentState = "MISSING"
}
- l := shell.FormatDuration(dur)
+ l := shell.FormatDuration(dur)
if l == "" {
log.Info("DUR IS EMPTY", dur)
}
diff --git a/structs.go b/structs.go
index 02d1b7f..7d9d2cc 100644
--- a/structs.go
+++ b/structs.go
@@ -23,12 +23,13 @@ type virtigoT struct {
// the stuff that is needed for a hypervisor
type HyperT struct {
- Hostname string // the hypervisor hostname
- Scan func() // the function to run to scan the hypervisor
- Autoscan bool // to scan or not to scan
- Delay time.Duration // how often to poll the hypervisor
- Dog *time.Ticker // the watchdog timer itself
- lastpoll time.Time // the last time the hypervisor polled
+ Hostname string // the hypervisor hostname
+ Scan func() // the function to run to scan the hypervisor
+ Autoscan bool // to scan or not to scan
+ Delay time.Duration // how often to poll the hypervisor
+ Dog *time.Ticker // the watchdog timer itself
+ lastpoll time.Time // the last time the hypervisor polled
+ killcount int
}
// the stuff that is needed for a hypervisor