diff --git a/pkg/compute/regiondrivers/aliyun.go b/pkg/compute/regiondrivers/aliyun.go index fd2e9595b7..d296335b32 100644 --- a/pkg/compute/regiondrivers/aliyun.go +++ b/pkg/compute/regiondrivers/aliyun.go @@ -66,7 +66,7 @@ func (self *SAliyunRegionDriver) validateCreateLBCommonData(ownerId mcclient.IId "loadbalancer_spec": loadbalancerSpecV, } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, nil, err } @@ -200,7 +200,7 @@ func (self *SAliyunRegionDriver) ValidateCreateLoadbalancerBackendData(ctx conte "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Default(api.LB_SENDPROXY_OFF), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -300,7 +300,7 @@ func (self *SAliyunRegionDriver) ValidateUpdateLoadbalancerBackendData(ctx conte "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } @@ -334,7 +334,7 @@ func (self *SAliyunRegionDriver) ValidateCreateLoadbalancerListenerRuleData(ctx "http_request_rate_per_src": validators.NewNonNegativeValidator("http_request_rate_per_src").Default(0), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -439,7 +439,7 @@ func (self *SAliyunRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "http_request_rate_per_src": validators.NewNonNegativeValidator("http_request_rate_per_src").Default(0), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -487,7 +487,7 @@ func (self *SAliyunRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "enable_http2": validators.NewBoolValidator("enable_http2").Default(true), } - if err := RunValidators(httpsV, data); err != nil { + if err := RunValidators(httpsV, data, false); err != nil { return nil, err } } @@ -508,7 +508,7 @@ func (self *SAliyunRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "health_check_interval": validators.NewRangeValidator("health_check_interval", 1, 50).Default(2), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, false); err != nil { return nil, err } @@ -578,7 +578,7 @@ func (self *SAliyunRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont V["backend_server_port"] = validators.NewPortValidator("backend_server_port") } - if err := RunValidators(V, data); err != nil { + if err := RunValidators(V, data, false); err != nil { return nil, err } @@ -666,7 +666,7 @@ func (self *SAliyunRegionDriver) ValidateUpdateLoadbalancerListenerData(ctx cont "enable_http2": validators.NewBoolValidator("enable_http2"), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } @@ -796,7 +796,7 @@ func (self *SAliyunRegionDriver) ValidateUpdateLoadbalancerListenerData(ctx cont } } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } return self.SManagedVirtualizationRegionDriver.ValidateUpdateLoadbalancerListenerData(ctx, userCred, data, lblis, backendGroup) diff --git a/pkg/compute/regiondrivers/aws.go b/pkg/compute/regiondrivers/aws.go index d25f71c5d0..a99538c8c0 100644 --- a/pkg/compute/regiondrivers/aws.go +++ b/pkg/compute/regiondrivers/aws.go @@ -133,7 +133,7 @@ func (self *SAwsRegionDriver) validateCreateLBCommonData(ownerId mcclient.IIdent "loadbalancer_spec": loadbalancerSpecV, } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, nil, err } @@ -200,7 +200,7 @@ func (self *SAwsRegionDriver) validateCreateApplicationListenerData(ctx context. "sticky_session_cookie_timeout": validators.NewNonNegativeValidator("sticky_session_cookie_timeout").Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -239,7 +239,7 @@ func (self *SAwsRegionDriver) validateCreateApplicationListenerData(ctx context. "enable_http2": validators.NewBoolValidator("enable_http2").Default(true), } - if err := RunValidators(httpsV, data); err != nil { + if err := RunValidators(httpsV, data, false); err != nil { return nil, err } } @@ -260,7 +260,7 @@ func (self *SAwsRegionDriver) validateCreateApplicationListenerData(ctx context. "health_check_interval": validators.NewRangeValidator("health_check_interval", 5, 300).Default(30), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, false); err != nil { return nil, err } @@ -283,7 +283,7 @@ func (self *SAwsRegionDriver) validateCreateNetworkListenerData(ctx context.Cont "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Default(api.LB_SENDPROXY_OFF), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -328,7 +328,7 @@ func (self *SAwsRegionDriver) validateCreateNetworkListenerData(ctx context.Cont "health_check_interval": validators.NewRangeValidator("health_check_interval", 10, 30).Default(30), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, false); err != nil { return nil, err } @@ -386,7 +386,7 @@ func (self *SAwsRegionDriver) validateUpdateApplicationListenerData(ctx context. "sticky_session_cookie_timeout": validators.NewNonNegativeValidator("sticky_session_cookie_timeout").Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } @@ -413,7 +413,7 @@ func (self *SAwsRegionDriver) validateUpdateApplicationListenerData(ctx context. "enable_http2": validators.NewBoolValidator("enable_http2").Default(true), } - if err := RunValidators(httpsV, data); err != nil { + if err := RunValidators(httpsV, data, true); err != nil { return nil, err } } @@ -434,7 +434,7 @@ func (self *SAwsRegionDriver) validateUpdateApplicationListenerData(ctx context. "health_check_interval": validators.NewRangeValidator("health_check_interval", 5, 300).Default(30), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, true); err != nil { return nil, err } @@ -457,7 +457,7 @@ func (self *SAwsRegionDriver) validateUpdateNetworkListenerData(ctx context.Cont "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Default(api.LB_SENDPROXY_OFF), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } @@ -491,7 +491,7 @@ func (self *SAwsRegionDriver) validateUpdateNetworkListenerData(ctx context.Cont "health_check_interval": validators.NewRangeValidator("health_check_interval", 10, 30).Default(30), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, true); err != nil { return nil, err } @@ -534,7 +534,7 @@ func (self *SAwsRegionDriver) ValidateCreateLoadbalancerListenerRuleData(ctx con "path": pathV.Default("").Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -624,7 +624,7 @@ func (self *SAwsRegionDriver) ValidateCreateLoadbalancerBackendData(ctx context. "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Default(api.LB_SENDPROXY_OFF), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -711,7 +711,7 @@ func (self *SAwsRegionDriver) ValidateUpdateLoadbalancerBackendData(ctx context. "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } diff --git a/pkg/compute/regiondrivers/huawei.go b/pkg/compute/regiondrivers/huawei.go index fe1529b398..e24b65291f 100644 --- a/pkg/compute/regiondrivers/huawei.go +++ b/pkg/compute/regiondrivers/huawei.go @@ -59,7 +59,7 @@ func (self *SHuaWeiRegionDriver) ValidateCreateLoadbalancerData(ctx context.Cont "manager": managerIdV, } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -199,7 +199,7 @@ func (self *SHuaWeiRegionDriver) ValidateCreateLoadbalancerBackendData(ctx conte "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Default(api.LB_SENDPROXY_OFF), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -290,7 +290,7 @@ func (self *SHuaWeiRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "gzip": validators.NewBoolValidator("gzip").Default(false), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -317,7 +317,7 @@ func (self *SHuaWeiRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "enable_http2": validators.NewBoolValidator("enable_http2").Default(true), } - if err := RunValidators(httpsV, data); err != nil { + if err := RunValidators(httpsV, data, false); err != nil { return nil, err } } @@ -338,7 +338,7 @@ func (self *SHuaWeiRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "health_check_interval": validators.NewRangeValidator("health_check_interval", 1, 50).Default(5), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, false); err != nil { return nil, err } @@ -365,7 +365,7 @@ func (self *SHuaWeiRegionDriver) ValidateCreateLoadbalancerListenerRuleData(ctx "http_request_rate_per_src": validators.NewNonNegativeValidator("http_request_rate_per_src").Default(0), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -454,7 +454,7 @@ func (self *SHuaWeiRegionDriver) ValidateUpdateLoadbalancerBackendData(ctx conte "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } @@ -520,7 +520,7 @@ func (self *SHuaWeiRegionDriver) ValidateUpdateLoadbalancerListenerData(ctx cont "enable_http2": validators.NewBoolValidator("enable_http2"), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } diff --git a/pkg/compute/regiondrivers/kvm.go b/pkg/compute/regiondrivers/kvm.go index c3a38719aa..ea3f87dfa1 100644 --- a/pkg/compute/regiondrivers/kvm.go +++ b/pkg/compute/regiondrivers/kvm.go @@ -43,8 +43,11 @@ func init() { models.RegisterRegionDriver(&driver) } -func RunValidators(validators map[string]validators.IValidator, data *jsonutils.JSONDict) error { +func RunValidators(validators map[string]validators.IValidator, data *jsonutils.JSONDict, optional bool) error { for _, v := range validators { + if optional { + v.Optional(true) + } if err := v.Validate(data); err != nil { return err } @@ -68,7 +71,7 @@ func (self *SKVMRegionDriver) ValidateCreateLoadbalancerData(ctx context.Context "network": networkV, "cluster": clusterV.Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -167,7 +170,7 @@ func (self *SKVMRegionDriver) ValidateCreateLoadbalancerBackendData(ctx context. "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Default(api.LB_SENDPROXY_OFF), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -268,7 +271,7 @@ func (self *SKVMRegionDriver) ValidateUpdateLoadbalancerBackendData(ctx context. "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } @@ -290,7 +293,7 @@ func (self *SKVMRegionDriver) ValidateCreateLoadbalancerListenerRuleData(ctx con "http_request_rate_per_src": validators.NewNonNegativeValidator("http_request_rate_per_src").Default(0), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -380,7 +383,7 @@ func (self *SKVMRegionDriver) ValidateCreateLoadbalancerListenerData(ctx context "http_request_rate_per_src": validators.NewNonNegativeValidator("http_request_rate_per_src").Default(0), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -407,7 +410,7 @@ func (self *SKVMRegionDriver) ValidateCreateLoadbalancerListenerData(ctx context "enable_http2": validators.NewBoolValidator("enable_http2").Default(true), } - if err := RunValidators(httpsV, data); err != nil { + if err := RunValidators(httpsV, data, false); err != nil { return nil, err } } @@ -428,7 +431,7 @@ func (self *SKVMRegionDriver) ValidateCreateLoadbalancerListenerData(ctx context "health_check_interval": validators.NewRangeValidator("health_check_interval", 1, 1000).Default(5), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, false); err != nil { return nil, err } @@ -504,7 +507,7 @@ func (self *SKVMRegionDriver) ValidateUpdateLoadbalancerListenerData(ctx context "enable_http2": validators.NewBoolValidator("enable_http2"), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } diff --git a/pkg/compute/regiondrivers/qcloud.go b/pkg/compute/regiondrivers/qcloud.go index ff1d9c67cf..569b22e644 100644 --- a/pkg/compute/regiondrivers/qcloud.go +++ b/pkg/compute/regiondrivers/qcloud.go @@ -60,7 +60,7 @@ func (self *SQcloudRegionDriver) ValidateCreateLoadbalancerData(ctx context.Cont "manager": managerIdV, } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -113,7 +113,7 @@ func (self *SQcloudRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "gzip": validators.NewBoolValidator("gzip").Default(false), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -150,7 +150,7 @@ func (self *SQcloudRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "enable_http2": validators.NewBoolValidator("enable_http2").Default(true), } - if err := RunValidators(httpsV, data); err != nil { + if err := RunValidators(httpsV, data, false); err != nil { return nil, err } } @@ -171,7 +171,7 @@ func (self *SQcloudRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont "health_check_interval": validators.NewRangeValidator("health_check_interval", 5, 300).Default(5), } - if err := RunValidators(keyVHealth, data); err != nil { + if err := RunValidators(keyVHealth, data, false); err != nil { return nil, err } @@ -578,7 +578,7 @@ func (self *SQcloudRegionDriver) ValidateUpdateLoadbalancerListenerData(ctx cont "enable_http2": validators.NewBoolValidator("enable_http2"), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } @@ -599,7 +599,7 @@ func (self *SQcloudRegionDriver) ValidateUpdateLoadbalancerBackendData(ctx conte "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Optional(true), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, true); err != nil { return nil, err } return data, nil @@ -617,7 +617,7 @@ func (self *SQcloudRegionDriver) ValidateCreateLoadbalancerListenerRuleData(ctx "http_request_rate_per_src": validators.NewNonNegativeValidator("http_request_rate_per_src").Default(0), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err } @@ -680,7 +680,7 @@ func (self *SQcloudRegionDriver) ValidateCreateLoadbalancerBackendData(ctx conte "send_proxy": validators.NewStringChoicesValidator("send_proxy", api.LB_SENDPROXY_CHOICES).Default(api.LB_SENDPROXY_OFF), } - if err := RunValidators(keyV, data); err != nil { + if err := RunValidators(keyV, data, false); err != nil { return nil, err }