cli/third-party/github.com/letsencrypt/boulder/observer/probers/mock/mock_conf.go
2025-05-30 12:50:20 -04:00

49 lines
1.2 KiB
Go

package probers
import (
"errors"
"github.com/prometheus/client_golang/prometheus"
"github.com/letsencrypt/boulder/config"
"github.com/letsencrypt/boulder/observer/probers"
"github.com/letsencrypt/boulder/strictyaml"
)
type MockConfigurer struct {
Valid bool `yaml:"valid"`
ErrMsg string `yaml:"errmsg"`
PName string `yaml:"pname"`
PKind string `yaml:"pkind"`
PTook config.Duration `yaml:"ptook"`
PSuccess bool `yaml:"psuccess"`
}
// Kind returns a name that uniquely identifies the `Kind` of `Configurer`.
func (c MockConfigurer) Kind() string {
return "Mock"
}
func (c MockConfigurer) UnmarshalSettings(settings []byte) (probers.Configurer, error) {
var conf MockConfigurer
err := strictyaml.Unmarshal(settings, &conf)
if err != nil {
return nil, err
}
return conf, nil
}
func (c MockConfigurer) MakeProber(_ map[string]prometheus.Collector) (probers.Prober, error) {
if !c.Valid {
return nil, errors.New("could not be validated")
}
return MockProber{c.PName, c.PKind, c.PTook, c.PSuccess}, nil
}
func (c MockConfigurer) Instrument() map[string]prometheus.Collector {
return nil
}
func init() {
probers.Register(MockConfigurer{})
}