func ping() { ticker := time.Tick(time.Duration(g.Config.Docker.Health) * time.Second) for _ = range ticker { if err := g.Docker.Ping(); err != nil { url := fmt.Sprintf("%s/api/host/%s/down/", g.Config.Eru.Endpoint, g.Config.HostName) utils.DoPut(url) logs.Assert(err, "Docker exit") } } }
func reportContainerDeath(cid string) { conn := g.GetRedisConn() defer g.ReleaseRedisConn(conn) flagKey := fmt.Sprintf("eru:agent:%s:container:flag", cid) rep, err := gore.NewCommand("GET", flagKey).Run(conn) if err != nil { logs.Info("Status failed in get flag", err) return } if !rep.IsNil() { gore.NewCommand("DEL", flagKey).Run(conn) logs.Debug(cid[:12], "Status flag set, ignore") return } url := fmt.Sprintf("%s/api/container/%s/kill/", g.Config.Eru.Endpoint, cid) utils.DoPut(url) logs.Debug(cid[:12], "dead, remove from watching list") }
func reportContainerCure(cid string) { url := fmt.Sprintf("%s/api/container/%s/cure/", g.Config.Eru.Endpoint, cid) utils.DoPut(url) logs.Debug(cid[:12], "cured, added in watching list") }