同步P0-10审查基线
保留幂等活动状态和域名删除保护的当前审查基线,后续继续修复并补充测试。
This commit is contained in:
parent
c4c96bc30a
commit
569499e54d
@ -74,7 +74,7 @@ func (s *Server) issueDomainAsTask(c *gin.Context) {
|
||||
}
|
||||
if existing, err := s.tasks.FindTaskByIdempotencyKey(c.Request.Context(), domainID, idempotencyKey); err == nil {
|
||||
status := http.StatusOK
|
||||
if existing.Status == "queued" || existing.Status == "running" {
|
||||
if isActiveTaskStatus(existing.Status) {
|
||||
status = http.StatusConflict
|
||||
}
|
||||
c.JSON(status, gin.H{"task": existing, "replayed": true})
|
||||
@ -106,7 +106,7 @@ func (s *Server) issueDomainAsTask(c *gin.Context) {
|
||||
if idempotencyKey != "" {
|
||||
if existing, lookupErr := s.tasks.FindTaskByIdempotencyKey(c.Request.Context(), domainID, idempotencyKey); lookupErr == nil {
|
||||
status := http.StatusOK
|
||||
if existing.Status == "queued" || existing.Status == "running" {
|
||||
if isActiveTaskStatus(existing.Status) {
|
||||
status = http.StatusConflict
|
||||
}
|
||||
c.JSON(status, gin.H{"task": existing, "replayed": true})
|
||||
@ -432,6 +432,23 @@ func validTaskIdempotencyKey(value string) bool {
|
||||
}
|
||||
return true
|
||||
}
|
||||
func isActiveTaskStatus(status string) bool {
|
||||
|
||||
switch status {
|
||||
|
||||
case "queued", "running", "retry_wait", "cancelling":
|
||||
|
||||
|
||||
return true
|
||||
|
||||
default:
|
||||
|
||||
|
||||
return false
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) listTasks(c *gin.Context) {
|
||||
reader, ok := s.projectTaskReader(c)
|
||||
if !ok {
|
||||
|
||||
@ -112,7 +112,7 @@ func (r *SQLProjectMemberRepository) DeleteProjectDomain(ctx context.Context, ac
|
||||
return err
|
||||
}
|
||||
rows, err := tx.QueryContext(ctx, Rebind(r.driver, `SELECT id FROM tasks
|
||||
WHERE domain_id = ? AND task_type IN ('certificate_issue', 'certificate_validate', 'certificate_deploy', 'certificate_import', 'certificate_restore')
|
||||
WHERE domain_id = ? AND task_type IN ('certificate_issue', 'certificate_validate', 'certificate_deploy', 'certificate_import', 'certificate_restore', 'renewal_run')
|
||||
AND status IN ('queued', 'running', 'retry_wait', 'cancelling')`+r.resourceWriteLock()), domainID)
|
||||
if err != nil {
|
||||
return fmt.Errorf("检查域名任务失败:%w", err)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user