49 lines
1.2 KiB
Go
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{})
|
|
}
|