From 2c12bff298690358933709cfaf3f314e134dca6c Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Thu, 27 Jun 2019 13:52:37 +0000 Subject: [PATCH] =?UTF-8?q?lb:=20=E5=B0=86lb.backendgroup=E8=A7=86?= =?UTF-8?q?=E4=B8=BA=E5=BC=B1=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/loadbalancerbackendgroups.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/compute/models/loadbalancerbackendgroups.go b/pkg/compute/models/loadbalancerbackendgroups.go index c02077902f..2e5bb113c1 100644 --- a/pkg/compute/models/loadbalancerbackendgroups.go +++ b/pkg/compute/models/loadbalancerbackendgroups.go @@ -245,7 +245,6 @@ func (lbbg *SLoadbalancerBackendGroup) refCount(men db.IModelManager) (int, erro func (lbbg *SLoadbalancerBackendGroup) getRefManagers() []db.IModelManager { // 引用Backend Group的数据库 return []db.IModelManager{ - LoadbalancerManager, LoadbalancerListenerManager, LoadbalancerListenerRuleManager, } @@ -318,6 +317,16 @@ func (lbbg *SLoadbalancerBackendGroup) StartLoadBalancerBackendGroupCreateTask(c } func (lbbg *SLoadbalancerBackendGroup) LBPendingDelete(ctx context.Context, userCred mcclient.TokenCredential) { + if lb := lbbg.GetLoadbalancer(); lb != nil && lb.BackendGroupId == lbbg.Id { + if _, err := db.UpdateWithLock(ctx, lb, func() error { + lb.BackendGroupId = "" + return nil + }); err != nil { + log.Errorf("loadbalancer %s(%s): clear up backend group %s(%s): %v", + lb.Name, lb.Id, lbbg.Name, lbbg.Id, err) + return + } + } lbbg.pendingDeleteSubs(ctx, userCred) lbbg.DoPendingDelete(ctx, userCred) }