[router] add py binding and readme for openai router and history backend (#11453)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:
@@ -29,9 +29,69 @@ impl ConfigValidator {
|
||||
Self::validate_retry(&retry_cfg)?;
|
||||
Self::validate_circuit_breaker(&cb_cfg)?;
|
||||
|
||||
if config.history_backend == HistoryBackend::Oracle && config.oracle.is_none() {
|
||||
// Validate Oracle configuration if enabled
|
||||
if config.history_backend == HistoryBackend::Oracle {
|
||||
if config.oracle.is_none() {
|
||||
return Err(ConfigError::MissingRequired {
|
||||
field: "oracle".to_string(),
|
||||
});
|
||||
}
|
||||
// Validate Oracle configuration details
|
||||
if let Some(oracle) = &config.oracle {
|
||||
Self::validate_oracle(oracle)?;
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Validate Oracle configuration
|
||||
fn validate_oracle(oracle: &OracleConfig) -> ConfigResult<()> {
|
||||
// Validate username is not empty
|
||||
if oracle.username.is_empty() {
|
||||
return Err(ConfigError::MissingRequired {
|
||||
field: "oracle".to_string(),
|
||||
field: "oracle.username".to_string(),
|
||||
});
|
||||
}
|
||||
|
||||
// Validate password is not empty
|
||||
if oracle.password.is_empty() {
|
||||
return Err(ConfigError::MissingRequired {
|
||||
field: "oracle.password".to_string(),
|
||||
});
|
||||
}
|
||||
|
||||
// Validate connect_descriptor is not empty
|
||||
if oracle.connect_descriptor.is_empty() {
|
||||
return Err(ConfigError::MissingRequired {
|
||||
field: "oracle_dsn or oracle_tns_alias".to_string(),
|
||||
});
|
||||
}
|
||||
|
||||
// Validate pool_min is at least 1
|
||||
if oracle.pool_min < 1 {
|
||||
return Err(ConfigError::InvalidValue {
|
||||
field: "oracle.pool_min".to_string(),
|
||||
value: oracle.pool_min.to_string(),
|
||||
reason: "Must be at least 1".to_string(),
|
||||
});
|
||||
}
|
||||
|
||||
// Validate pool_max is greater than or equal to pool_min
|
||||
if oracle.pool_max < oracle.pool_min {
|
||||
return Err(ConfigError::InvalidValue {
|
||||
field: "oracle.pool_max".to_string(),
|
||||
value: oracle.pool_max.to_string(),
|
||||
reason: "Must be >= oracle.pool_min".to_string(),
|
||||
});
|
||||
}
|
||||
|
||||
// Validate pool_timeout_secs is greater than 0
|
||||
if oracle.pool_timeout_secs == 0 {
|
||||
return Err(ConfigError::InvalidValue {
|
||||
field: "oracle.pool_timeout_secs".to_string(),
|
||||
value: oracle.pool_timeout_secs.to_string(),
|
||||
reason: "Must be > 0".to_string(),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user