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.
211 lines
4.8 KiB
211 lines
4.8 KiB
4 months ago
|
package validators
|
||
|
|
||
|
import (
|
||
|
"sync"
|
||
|
|
||
|
"github.com/go-playground/validator/v10"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
once sync.Once
|
||
|
VControlValidator = validator.New()
|
||
|
)
|
||
|
|
||
|
// getVControlValidator returns singleton instance of VControlValidator.
|
||
|
func getVControlValidator() *validator.Validate {
|
||
|
once.Do(func() {
|
||
|
err := registerAllValidators(VControlValidator)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
})
|
||
|
|
||
|
return VControlValidator
|
||
|
}
|
||
|
|
||
|
// registerAllValidators registers all custom validators in VControlValidator.
|
||
|
func registerAllValidators(validate *validator.Validate) error {
|
||
|
|
||
|
// Register virt_type validator
|
||
|
err := validate.RegisterValidation("virt_type", virtTypeValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register vm status validator
|
||
|
err = validate.RegisterValidation("vm_status", vmStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register cpu_units validator
|
||
|
err = validate.RegisterValidation("cpu_units", cpuUnitsValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register cpu_limit validator
|
||
|
err = validate.RegisterValidation("cpu_limit", cpuLimitValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register mem_guarantee_size validator
|
||
|
err = validate.RegisterValidation("mem_guarantee_size", memGuaranteeSizeValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register video_ram validator
|
||
|
err = validate.RegisterValidation("video_ram", videoRamValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register mem_guarantee_size validator
|
||
|
err = validate.RegisterValidation("metrics_period", metricsPeriodValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register ha_status validator
|
||
|
err = validate.RegisterValidation("ha_status", haStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register visibility validator
|
||
|
err = validate.RegisterValidation("visibility", visibilityValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register visibility validator
|
||
|
err = validate.RegisterValidation("image_type", imageTypeValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register visibility validator
|
||
|
err = validate.RegisterValidation("image_status", imageStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register bool validator
|
||
|
err = validate.RegisterValidation("is_bool", isBoolTypeValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register network_type validator
|
||
|
err = validate.RegisterValidation("network_type", networkTypeValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register external storage status validator
|
||
|
err = validate.RegisterValidation("extstorage_status", extStorageStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register external storage type validator
|
||
|
err = validate.RegisterValidation("extstorage_type", extStorageTypeValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register node maintenance status validator
|
||
|
err = validate.RegisterValidation("maintenance_status", nodeMaintenanceStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register node maintenance status validator
|
||
|
err = validate.RegisterValidation("agent_update_status", nodeAgentStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register multi choose ha status validator
|
||
|
err = validate.RegisterValidation("ha_multi_status", haMultiStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register node status on ha cluster validator
|
||
|
err = validate.RegisterValidation("node_status_in_ha_cluster", nodeStatusInHaClusterValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register affinity rule validator
|
||
|
err = validate.RegisterValidation("affinity", affinityRuleValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register guest os validator
|
||
|
err = validate.RegisterValidation("guest_os", guestOSValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register guest os version validator
|
||
|
err = validate.RegisterValidation("guest_os_version", guestOSVersionValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register io priority validator
|
||
|
err = validate.RegisterValidation("io_priority", ioPriorityValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register auto start validator
|
||
|
err = validate.RegisterValidation("auto_start", autoStartValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register auto stop validator
|
||
|
err = validate.RegisterValidation("auto_stop", autoStopValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register vnc mode validator
|
||
|
err = validate.RegisterValidation("vnc_mode", vncModeValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register chipset validator
|
||
|
err = validate.RegisterValidation("chipset", chipsetValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register clock offset validator
|
||
|
err = validate.RegisterValidation("clock_offset", clockOffsetValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register template status validator
|
||
|
err = validate.RegisterValidation("template_status", templateStatusValidator)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// Register url validator
|
||
|
err = validate.RegisterValidation("url", urlValidartor)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|