From 541a2d4e0df61ceb4b1d7201ec6d4e21900dc605 Mon Sep 17 00:00:00 2001 From: TangBin Date: Fri, 23 Oct 2020 20:30:53 +0800 Subject: [PATCH 1/2] loadbalancer support batch create --- pkg/compute/models/loadbalancers.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/compute/models/loadbalancers.go b/pkg/compute/models/loadbalancers.go index 834012671c..52a1c2e433 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, From 44b40599a58bd613d704dfaaf6e590b53de7a18c Mon Sep 17 00:00:00 2001 From: TangBin Date: Fri, 23 Oct 2020 20:44:27 +0800 Subject: [PATCH 2/2] qcloud zone sync fix --- pkg/compute/models/loadbalancers.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkg/compute/models/loadbalancers.go b/pkg/compute/models/loadbalancers.go index 52a1c2e433..b441264e61 100644 --- a/pkg/compute/models/loadbalancers.go +++ b/pkg/compute/models/loadbalancers.go @@ -1097,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() } }