mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-08-02 01:48:40 +00:00
45 lines
955 B
Go
45 lines
955 B
Go
package raw
|
|
|
|
import (
|
|
validation "github.com/go-ozzo/ozzo-validation"
|
|
"github.com/go-ozzo/ozzo-validation/is"
|
|
"github.com/runatlantis/atlantis/server/core/config/valid"
|
|
)
|
|
|
|
type Metrics struct {
|
|
Statsd *Statsd `yaml:"statsd" json:"statsd"`
|
|
}
|
|
|
|
type Statsd struct {
|
|
Port string `yaml:"port" json:"port"`
|
|
Host string `yaml:"host" json:"host"`
|
|
}
|
|
|
|
func (s *Statsd) Validate() error {
|
|
return validation.ValidateStruct(s,
|
|
validation.Field(&s.Host, validation.Required),
|
|
validation.Field(&s.Port, validation.Required),
|
|
validation.Field(&s.Host, is.IP),
|
|
validation.Field(&s.Port, is.Int))
|
|
}
|
|
|
|
func (m Metrics) Validate() error {
|
|
return validation.ValidateStruct(&m,
|
|
validation.Field(&m.Statsd),
|
|
)
|
|
}
|
|
|
|
func (m Metrics) ToValid() valid.Metrics {
|
|
// we've already validated at this point
|
|
if m.Statsd != nil {
|
|
return valid.Metrics{
|
|
Statsd: &valid.Statsd{
|
|
Host: m.Statsd.Host,
|
|
Port: m.Statsd.Port,
|
|
},
|
|
}
|
|
}
|
|
|
|
return valid.Metrics{}
|
|
}
|