fix(acceptance): 阻断本地控制面漂移污染验收
本地 K3s 节点此前在 Kubelet 中登记为宿主机资源,负载可挤压 etcd 并在 server 重启后继续污染同一 Run。现在为三节点设置真实可调度预算、独立 etcd/数据卷和锁定依赖镜像,并持续核对 server 与 API/etcd 健康。\n\n每次验收生成独立 Run ID,报告使用独占或原子写入,负载错误记录具体阶段;数据库鉴权不可用返回带 Retry-After 的 503,避免基础设施故障被误报为 401。\n\n验证:Go 全量测试、go vet、gofmt、OpenAPI、bash -n、ShellCheck、报告测试和 k3d 配置解析均通过。
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/easyai/easyai-ai-gateway/apps/api/internal/auth"
|
||||
@@ -19,6 +20,9 @@ func (s *Server) requireProtocolUser(protocol string, next http.Handler) http.Ha
|
||||
var requestErr *auth.RequestAuthError
|
||||
if errors.As(err, &requestErr) {
|
||||
status, code, message = requestErr.Status, requestErr.Code, requestErr.Message
|
||||
if requestErr.RetryAfterSeconds > 0 {
|
||||
w.Header().Set("Retry-After", strconv.Itoa(requestErr.RetryAfterSeconds))
|
||||
}
|
||||
}
|
||||
writeProtocolError(w, protocol, status, message, nil, code)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user