A simple monitoring solution written in Go (work in progress)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
619 B

package config
import (
"fmt"
)
type AlrmGroup struct {
Name string
Hosts map[string]*AlrmHost
}
func (ag *AlrmGroup) NewHost(name string) (*AlrmHost, error) {
if ag.Hosts == nil {
ag.Hosts = make(map[string]*AlrmHost)
}
if _, exists := ag.Hosts[name]; exists {
return nil, fmt.Errorf("host %s already exists", name)
}
host := &AlrmHost{Name: name}
ag.Hosts[name] = host
return host, nil
}
func (ag *AlrmGroup) Check(debuglvl int) error {
for _, host := range ag.Hosts {
for _, chk := range host.Checks {
err := chk.Check(debuglvl)
if err != nil {
return err
}
}
}
return nil
}