fix(pool): allow zero cooldown settings

This commit is contained in:
elky
2026-06-21 12:20:08 +08:00
parent 61bdd304b7
commit 900f8a7163
2 changed files with 90 additions and 7 deletions
@@ -458,12 +458,10 @@ pub(crate) fn admin_provider_pool_config_from_config_value(
rate_limit_cooldown_seconds: pool_advanced
.get("rate_limit_cooldown_seconds")
.and_then(json_u64)
.filter(|value| *value > 0)
.unwrap_or(300),
overload_cooldown_seconds: pool_advanced
.get("overload_cooldown_seconds")
.and_then(json_u64)
.filter(|value| *value > 0)
.unwrap_or(30),
probing_enabled: pool_advanced
.get("probing_enabled")
@@ -672,6 +670,20 @@ mod tests {
assert_eq!(config.sticky_session_ttl_seconds, 0);
}
#[test]
fn parses_zero_cooldown_seconds_to_disable_error_cooldowns() {
let config = admin_provider_pool_config_from_config_value(Some(&json!({
"pool_advanced": {
"rate_limit_cooldown_seconds": 0,
"overload_cooldown_seconds": 0
}
})))
.expect("pool config should parse");
assert_eq!(config.rate_limit_cooldown_seconds, 0);
assert_eq!(config.overload_cooldown_seconds, 0);
}
#[test]
fn parses_legacy_pool_score_weights_from_pool_advanced() {
let config = admin_provider_pool_config_from_config_value(Some(&json!({