diff --git a/pkg/compute/models/loadbalancers.go b/pkg/compute/models/loadbalancers.go index 834012671c..b441264e61 100644 --- a/pkg/compute/models/loadbalancers.go +++ b/pkg/compute/models/loadbalancers.go @@ -271,6 +271,21 @@ func (man *SLoadbalancerManager) QueryDistinctExtraField(q *sqlchemy.SQuery, fie return q, httperrors.ErrNotFound } +func (man *SLoadbalancerManager) BatchCreateValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { + input := api.LoadbalancerCreateInput{} + err := data.Unmarshal(&input) + if err != nil { + return nil, err + } + + newData, err := man.ValidateCreateData(ctx, userCred, ownerId, query, input) + if err != nil { + return nil, err + } + + return newData, nil +} + func (man *SLoadbalancerManager) ValidateCreateData( ctx context.Context, userCred mcclient.TokenCredential, @@ -1082,12 +1097,10 @@ func (lb *SLoadbalancer) SyncWithCloudLoadbalancer(ctx context.Context, userCred } } - if len(lb.ZoneId) == 0 { - extZoneId := extLb.GetZoneId() - if len(extZoneId) > 0 { - if zone, err := db.FetchByExternalId(ZoneManager, extZoneId); err == nil && zone != nil { - lb.ZoneId = zone.GetId() - } + extZoneId := extLb.GetZoneId() + if len(extZoneId) > 0 { + if zone, err := db.FetchByExternalId(ZoneManager, extZoneId); err == nil && zone != nil { + lb.ZoneId = zone.GetId() } }