mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 14:19:49 +08:00
Merge pull request #2186 from ioito/hotfix/qx-lb-purge-fix
fix: lb purge error
This commit is contained in:
@@ -183,6 +183,16 @@ func (man *SLoadbalancerBackendGroupManager) ValidateCreateData(ctx context.Cont
|
||||
return region.GetDriver().ValidateCreateLoadbalancerBackendGroupData(ctx, userCred, data, lb, backends)
|
||||
}
|
||||
|
||||
func (lbbg *SLoadbalancerBackendGroup) GetLoadbalancerListenerRules() ([]SLoadbalancerListenerRule, error) {
|
||||
q := LoadbalancerListenerRuleManager.Query().Equals("backend_group_id", lbbg.Id).IsFalse("pending_deleted")
|
||||
rules := []SLoadbalancerListenerRule{}
|
||||
err := db.FetchModelObjects(LoadbalancerListenerRuleManager, q, &rules)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return rules, nil
|
||||
}
|
||||
|
||||
func (lbbg *SLoadbalancerBackendGroup) GetLoadbalancerListeners() ([]SLoadbalancerListener, error) {
|
||||
q := LoadbalancerListenerManager.Query().Equals("backend_group_id", lbbg.Id).IsFalse("pending_deleted")
|
||||
listeners := []SLoadbalancerListener{}
|
||||
|
||||
@@ -391,6 +391,20 @@ func (lbbg *SLoadbalancerBackendGroup) purgeListeners(ctx context.Context, userC
|
||||
return nil
|
||||
}
|
||||
|
||||
func (lbbg *SLoadbalancerBackendGroup) purgeListenerrules(ctx context.Context, userCred mcclient.TokenCredential) error {
|
||||
rules, err := lbbg.GetLoadbalancerListenerRules()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for i := range rules {
|
||||
err = rules[i].purge(ctx, userCred)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (lbbg *SLoadbalancerBackendGroup) purge(ctx context.Context, userCred mcclient.TokenCredential) error {
|
||||
lockman.LockObject(ctx, lbbg)
|
||||
defer lockman.ReleaseObject(ctx, lbbg)
|
||||
@@ -405,6 +419,11 @@ func (lbbg *SLoadbalancerBackendGroup) purge(ctx context.Context, userCred mccli
|
||||
return err
|
||||
}
|
||||
|
||||
err = lbbg.purgeListenerrules(ctx, userCred)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = lbbg.ValidateDeleteCondition(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user