Bladeren bron

fix(internal/task): 修正 WAF 服务恢复逻辑

- 修改 OneDaysInSeconds 常量的值,从 10000 修改为 1,以正确表示 1 天的秒数- 添加 WAF 服务恢复流程,包括获取 CDN Web ID、启用
fusu 3 weken geleden
bovenliggende
commit
25985bfb0a
1 gewijzigde bestanden met toevoegingen van 19 en 1 verwijderingen
  1. 19 1
      internal/task/waf.go

+ 19 - 1
internal/task/waf.go

@@ -74,7 +74,7 @@ type wafTask struct {
 
 const (
 	// 1天对应的秒数
-	OneDaysInSeconds = 10000 * 24 * 60 * 60
+	OneDaysInSeconds = 1 * 24 * 60 * 60
 	// 7天对应的秒数
 	SevenDaysInSeconds = 7 * 24 * 60 * 60
 )
@@ -376,6 +376,24 @@ func (t *wafTask) RecoverRecentPlan(ctx context.Context) error {
 		return nil
 	}
 
+	t.logger.Info("开始恢复到期的WAF服务", zap.Int("数量", len(renewalRequests)))
+	var hostIds []int
+	for _, limit := range renewalRequests {
+		hostIds = append(hostIds, limit.HostId)
+	}
+
+	webIds, err := t.GetCdnWebId(ctx, hostIds)
+	if err != nil { return fmt.Errorf("执行[恢复]-获取cdn_web_id失败: %w", err) }
+	if err := t.BanServer(ctx, webIds, true); err != nil {
+		return fmt.Errorf("执行[恢复]-启用服务失败: %w", err)
+	}
+
+	planIdsToRemove  := make([]int64, len(hostIds))
+	for i, id := range hostIds { planIdsToRemove [i] = int64(id) }
+	if err := t.expiredRep.RemovePlans(ctx, repository.ClosedPlansList, planIdsToRemove ...); err != nil {
+		return fmt.Errorf("执行[恢复]-标记为已关闭失败: %w", err)
+	}
+
 	return t.executePlanRecovery(ctx, renewalRequests, "近期恢复",repository.ClosedPlansList)
 }