Files
coder/scaletest/dashboard/config.go
2023-07-27 09:40:13 +01:00

39 lines
888 B
Go

package dashboard
import (
"time"
"golang.org/x/xerrors"
"cdr.dev/slog"
)
type Config struct {
// MinWait is the minimum interval between fetches.
MinWait time.Duration `json:"duration_min"`
// MaxWait is the maximum interval between fetches.
MaxWait time.Duration `json:"duration_max"`
// Trace is whether to trace the requests.
Trace bool `json:"trace"`
// Logger is the logger to use.
Logger slog.Logger `json:"-"`
// RollTable is the set of actions to perform
RollTable RollTable `json:"roll_table"`
}
func (c Config) Validate() error {
if c.MinWait <= 0 {
return xerrors.Errorf("validate duration_min: must be greater than zero")
}
if c.MaxWait <= 0 {
return xerrors.Errorf("validate duration_max: must be greater than zero")
}
if c.MinWait > c.MaxWait {
return xerrors.Errorf("validate duration_min: must be less than duration_max")
}
return nil
}