You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.2 KiB
109 lines
2.2 KiB
package validators
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
var (
|
|
once sync.Once
|
|
instance *DecortValidator
|
|
)
|
|
|
|
type DecortValidator struct {
|
|
decortValidator *validator.Validate
|
|
}
|
|
|
|
// getDecortValidator returns singleton instance of DecortValidator.
|
|
func getDecortValidator() *validator.Validate {
|
|
if instance == nil {
|
|
once.Do(func() {
|
|
instance = new(DecortValidator)
|
|
instance.decortValidator = validator.New()
|
|
|
|
err := registerAllValidators(instance.decortValidator)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
})
|
|
}
|
|
|
|
return instance.decortValidator
|
|
}
|
|
|
|
// registerAllValidators registers all custom validators in DecortValidator.
|
|
func registerAllValidators(validate *validator.Validate) error {
|
|
err := validate.RegisterValidation("bootType", imageBootTypeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("imageType", imageTypeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("imageDrivers", imageDriversValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("imageArchitecture", imageArchitectureValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("accountAccessType", accountAccessTypeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("accountCUType", accountCUTypeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("bserviceDriver", bserviceDriverValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("bserviceMode", bserviceModeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("computeTopology", computeTopologyValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("computePolicy", computePolicyValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("computeMode", computeModeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("computeDiskType", computeDiskTypeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("computeNetType", computeNetTypeValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = validate.RegisterValidation("computeProto", computeProtoValidator)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|