From 8a345e9998c63061dbf78c40de8456b094084247 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Sat, 10 Aug 2019 10:16:24 +0000 Subject: [PATCH] =?UTF-8?q?wires:=20=E6=94=B9=E6=AD=A3mtu=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes a7486641df4f04d7148d467719e3e07763ab5a7e ("wires: 添加mtu属性") --- pkg/compute/models/wires.go | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/pkg/compute/models/wires.go b/pkg/compute/models/wires.go index 2dd6420cfc..dfa7447d41 100644 --- a/pkg/compute/models/wires.go +++ b/pkg/compute/models/wires.go @@ -31,6 +31,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/cloudcommon/validators" "yunion.io/x/onecloud/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" @@ -96,13 +97,14 @@ func (self *SWire) AllowDeleteItem(ctx context.Context, userCred mcclient.TokenC } func (manager *SWireManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { - bandwidth, err := data.Int("bandwidth") - if err != nil || bandwidth <= 0 { - return nil, httperrors.NewInputParameterError("invalid bandwidth") + keysV := []validators.IValidator{ + validators.NewNonNegativeValidator("bandwidth"), + validators.NewRangeValidator("mtu", 1, 1000000).Optional(true), } - mtu, err := data.Int("mtu") - if err != nil || mtu <= 0 { - return nil, httperrors.NewInputParameterError("invalid mtu") + for _, v := range keysV { + if err := v.Validate(data); err != nil { + return nil, err + } } vpcStr := jsonutils.GetAnyString(data, []string{"vpc", "vpc_id"}) @@ -126,14 +128,17 @@ func (manager *SWireManager) ValidateCreateData(ctx context.Context, userCred mc } func (wire *SWire) ValidateUpdateData(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { - bandwidth, err := data.Int("bandwidth") - if err == nil && bandwidth <= 0 { - return nil, httperrors.NewInputParameterError("invalid bandwidth") + keysV := []validators.IValidator{ + validators.NewNonNegativeValidator("bandwidth"), + validators.NewRangeValidator("mtu", 1, 1000000).Optional(true), } - mtu, err := data.Int("mtu") - if err == nil && mtu <= 0 { - return nil, httperrors.NewInputParameterError("invalid mtu") + for _, v := range keysV { + v.Optional(true) + if err := v.Validate(data); err != nil { + return nil, err + } } + return wire.SStandaloneResourceBase.ValidateUpdateData(ctx, userCred, query, data) }