Merge pull request #11502 from ioito/hotfix/qx-waf-purge

fix(region): waf purge with account delete
This commit is contained in:
Zexi Li
2021-06-28 19:41:12 +08:00
committed by GitHub
3 changed files with 65 additions and 0 deletions
+4
View File
@@ -1476,6 +1476,10 @@ func (self *SCloudprovider) RealDelete(ctx context.Context, userCred mcclient.To
ElasticcacheManager,
AccessGroupCacheManager,
FileSystemManager,
WafRuleGroupCacheManager,
WafIPSetCacheManager,
WafRegexSetCacheManager,
WafInstanceManager,
VpcManager,
ElasticipManager,
NetworkInterfaceManager,
+60
View File
@@ -1924,3 +1924,63 @@ func (vpcPC *SVpcPeeringConnection) purge(ctx context.Context, userCred mcclient
defer lockman.ReleaseObject(ctx, vpcPC)
return vpcPC.RealDelete(ctx, userCred)
}
func (manager *SWafRuleGroupCacheManager) purgeAll(ctx context.Context, userCred mcclient.TokenCredential, providerId string) error {
caches := []SWafRuleGroupCache{}
err := fetchByManagerId(manager, providerId, &caches)
if err != nil {
return errors.Wrapf(err, "fetchByManagerId")
}
for i := range caches {
err := caches[i].RealDelete(ctx, userCred)
if err != nil {
return errors.Wrapf(err, "cache delete")
}
}
return nil
}
func (manager *SWafIPSetCacheManager) purgeAll(ctx context.Context, userCred mcclient.TokenCredential, providerId string) error {
caches := []SWafIPSetCache{}
err := fetchByManagerId(manager, providerId, &caches)
if err != nil {
return errors.Wrapf(err, "fetchByManagerId")
}
for i := range caches {
err := caches[i].RealDelete(ctx, userCred)
if err != nil {
return errors.Wrapf(err, "cache delete")
}
}
return nil
}
func (manager *SWafRegexSetCacheManager) purgeAll(ctx context.Context, userCred mcclient.TokenCredential, providerId string) error {
caches := []SWafRegexSetCache{}
err := fetchByManagerId(manager, providerId, &caches)
if err != nil {
return errors.Wrapf(err, "fetchByManagerId")
}
for i := range caches {
err := caches[i].RealDelete(ctx, userCred)
if err != nil {
return errors.Wrapf(err, "cache delete")
}
}
return nil
}
func (manager *SWafInstanceManager) purgeAll(ctx context.Context, userCred mcclient.TokenCredential, providerId string) error {
ins := []SWafInstance{}
err := fetchByManagerId(manager, providerId, &ins)
if err != nil {
return errors.Wrapf(err, "fetchByManagerId")
}
for i := range ins {
err := ins[i].RealDelete(ctx, userCred)
if err != nil {
return errors.Wrapf(err, "cache delete")
}
}
return nil
}
+1
View File
@@ -219,6 +219,7 @@ func InitHandlers(app *appsrv.Application) {
models.ProjectMappingManager,
models.WafRuleGroupManager,
models.WafRuleGroupCacheManager,
models.WafIPSetManager,
models.WafIPSetCacheManager,
models.WafRegexSetManager,