nurse/check/collection.go

32 lines
590 B
Go
Raw Permalink Normal View History

2022-05-13 15:38:19 +02:00
package check
import (
"golang.org/x/sync/errgroup"
2022-09-22 11:46:36 +02:00
"code.icb4dc0.de/prskr/nurse/config"
"code.icb4dc0.de/prskr/nurse/grammar"
2022-05-13 15:38:19 +02:00
)
2022-06-09 22:40:32 +02:00
var _ SystemChecker = Collection(nil)
2022-05-13 15:38:19 +02:00
type Collection []SystemChecker
func (Collection) UnmarshalCheck(grammar.Check, config.ServerLookup) error {
panic("unmarshalling is not supported for a collection")
}
func (c Collection) Execute(ctx Context) error {
2022-05-13 15:38:19 +02:00
grp, grpCtx := errgroup.WithContext(ctx)
chkCtx := ctx.WithParent(grpCtx)
2022-05-13 15:38:19 +02:00
for i := range c {
chk := c[i]
grp.Go(func() error {
return chk.Execute(chkCtx)
2022-05-13 15:38:19 +02:00
})
}
return grp.Wait()
}