fix(proxy): 将401/405质量检测结果调整为告警
This commit is contained in:
@@ -1908,8 +1908,13 @@ func runProxyQualityTarget(ctx context.Context, client *http.Client, target prox
|
|||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := target.AllowedStatuses[resp.StatusCode]; ok {
|
if _, ok := target.AllowedStatuses[resp.StatusCode]; ok {
|
||||||
item.Status = "pass"
|
if resp.StatusCode >= http.StatusOK && resp.StatusCode < http.StatusMultipleChoices {
|
||||||
item.Message = fmt.Sprintf("HTTP %d", resp.StatusCode)
|
item.Status = "pass"
|
||||||
|
item.Message = fmt.Sprintf("HTTP %d", resp.StatusCode)
|
||||||
|
} else {
|
||||||
|
item.Status = "warn"
|
||||||
|
item.Message = fmt.Sprintf("HTTP %d(目标可达,但鉴权或方法受限)", resp.StatusCode)
|
||||||
|
}
|
||||||
return item
|
return item
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,27 @@ func TestRunProxyQualityTarget_SoraChallenge(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRunProxyQualityTarget_AllowedStatusPass(t *testing.T) {
|
func TestRunProxyQualityTarget_AllowedStatusPass(t *testing.T) {
|
||||||
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
||||||
|
w.WriteHeader(http.StatusOK)
|
||||||
|
_, _ = w.Write([]byte(`{"models":[]}`))
|
||||||
|
}))
|
||||||
|
defer server.Close()
|
||||||
|
|
||||||
|
target := proxyQualityTarget{
|
||||||
|
Target: "gemini",
|
||||||
|
URL: server.URL,
|
||||||
|
Method: http.MethodGet,
|
||||||
|
AllowedStatuses: map[int]struct{}{
|
||||||
|
http.StatusOK: {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
item := runProxyQualityTarget(context.Background(), server.Client(), target)
|
||||||
|
require.Equal(t, "pass", item.Status)
|
||||||
|
require.Equal(t, http.StatusOK, item.HTTPStatus)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRunProxyQualityTarget_AllowedStatusWarnForUnauthorized(t *testing.T) {
|
||||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
||||||
w.WriteHeader(http.StatusUnauthorized)
|
w.WriteHeader(http.StatusUnauthorized)
|
||||||
_, _ = w.Write([]byte(`{"error":"unauthorized"}`))
|
_, _ = w.Write([]byte(`{"error":"unauthorized"}`))
|
||||||
@@ -68,6 +89,7 @@ func TestRunProxyQualityTarget_AllowedStatusPass(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
item := runProxyQualityTarget(context.Background(), server.Client(), target)
|
item := runProxyQualityTarget(context.Background(), server.Client(), target)
|
||||||
require.Equal(t, "pass", item.Status)
|
require.Equal(t, "warn", item.Status)
|
||||||
require.Equal(t, http.StatusUnauthorized, item.HTTPStatus)
|
require.Equal(t, http.StatusUnauthorized, item.HTTPStatus)
|
||||||
|
require.Contains(t, item.Message, "目标可达")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user