同步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 {
|
if existing, err := s.tasks.FindTaskByIdempotencyKey(c.Request.Context(), domainID, idempotencyKey); err == nil {
|
||||||
status := http.StatusOK
|
status := http.StatusOK
|
||||||
if existing.Status == "queued" || existing.Status == "running" {
|
if isActiveTaskStatus(existing.Status) {
|
||||||
status = http.StatusConflict
|
status = http.StatusConflict
|
||||||
}
|
}
|
||||||
c.JSON(status, gin.H{"task": existing, "replayed": true})
|
c.JSON(status, gin.H{"task": existing, "replayed": true})
|
||||||
@ -106,7 +106,7 @@ func (s *Server) issueDomainAsTask(c *gin.Context) {
|
|||||||
if idempotencyKey != "" {
|
if idempotencyKey != "" {
|
||||||
if existing, lookupErr := s.tasks.FindTaskByIdempotencyKey(c.Request.Context(), domainID, idempotencyKey); lookupErr == nil {
|
if existing, lookupErr := s.tasks.FindTaskByIdempotencyKey(c.Request.Context(), domainID, idempotencyKey); lookupErr == nil {
|
||||||
status := http.StatusOK
|
status := http.StatusOK
|
||||||
if existing.Status == "queued" || existing.Status == "running" {
|
if isActiveTaskStatus(existing.Status) {
|
||||||
status = http.StatusConflict
|
status = http.StatusConflict
|
||||||
}
|
}
|
||||||
c.JSON(status, gin.H{"task": existing, "replayed": true})
|
c.JSON(status, gin.H{"task": existing, "replayed": true})
|
||||||
@ -432,6 +432,23 @@ func validTaskIdempotencyKey(value string) bool {
|
|||||||
}
|
}
|
||||||
return true
|
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) {
|
func (s *Server) listTasks(c *gin.Context) {
|
||||||
reader, ok := s.projectTaskReader(c)
|
reader, ok := s.projectTaskReader(c)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|||||||
@ -112,7 +112,7 @@ func (r *SQLProjectMemberRepository) DeleteProjectDomain(ctx context.Context, ac
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
rows, err := tx.QueryContext(ctx, Rebind(r.driver, `SELECT id FROM tasks
|
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)
|
AND status IN ('queued', 'running', 'retry_wait', 'cancelling')`+r.resourceWriteLock()), domainID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("检查域名任务失败:%w", err)
|
return fmt.Errorf("检查域名任务失败:%w", err)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user