/
root.go
41 lines (33 loc) · 826 Bytes
/
root.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package compat
import (
"github.com/go-co-op/gocron"
"github.com/oskardotglobal/uptimekuma-cli/util"
)
var (
nodes []Node
)
type Node interface {
GetName() string
ShouldReportStatus() bool
}
func init() {
dockerContainers := util.ArrayMap(GetDockerContainers(), func(x DockerNode) Node {
return Node(x)
})
nodes = append(nodes, dockerContainers...)
util.ArrayMap(nodes, func(x Node) string {
util.SetNodeUrlIfEmpty(x.GetName())
return ""
})
}
func ReportNodes(scheduler *gocron.Scheduler) {
for _, node := range nodes {
_, err := scheduler.Every(1).Minute().Do(ReportStatusForNode, node)
util.CheckErrorWithMsg(err, "Couldn't schedule task for container "+node.GetName())
}
}
func ReportStatusForNode(node Node) {
if node.ShouldReportStatus() {
util.ReportStatus("nodes."+node.GetName())
}
}