}
}
+ if (!globalConfig.load_balancing_policies.default_policy.empty()) {
+ auto policy = getRegisteredTypeByName<ServerPolicy>(globalConfig.load_balancing_policies.default_policy);
+ dnsdist::configuration::updateRuntimeConfiguration([&policy](dnsdist::configuration::RuntimeConfiguration& config) {
+ config.d_lbPolicy = std::move(policy);
+ });
+ }
+
for (const auto& pool : globalConfig.pools) {
std::shared_ptr<ServerPool> poolObj = createPoolIfNotExists(std::string(pool.name));
if (!pool.packet_cache.empty()) {
#[derive(Deserialize, Serialize, Debug, PartialEq)]
#[serde(deny_unknown_fields)]
struct LoadBalancingPoliciesConfiguration {
+ #[serde(rename = "default-policy", default = "crate::default_value_load_balancing_policies_default_policy", skip_serializing_if = "crate::default_value_equal_load_balancing_policies_default_policy")]
+ default_policy: String,
#[serde(rename = "servfail-on-no-server", default, skip_serializing_if = "crate::is_default")]
servfail_on_no_server: bool,
#[serde(rename = "round-robin-servfail-on-no-server", default, skip_serializing_if = "crate::is_default")]
}
+// DEFAULT HANDLING for load_balancing_policies_default_policy
+fn default_value_load_balancing_policies_default_policy() -> String {
+ String::from("leastOutstanding")
+}
+fn default_value_equal_load_balancing_policies_default_policy(value: &str)-> bool {
+ value == default_value_load_balancing_policies_default_policy()
+}
+
+
impl Default for dnsdistsettings::LoadBalancingPoliciesConfiguration {
fn default() -> Self {
let deserialized: dnsdistsettings::LoadBalancingPoliciesConfiguration = serde_yaml::from_str("").unwrap();
load-balancing-policies:
parameters:
+ - name: "default-policy"
+ type: "String"
+ default: "leastOutstanding"
+ lua-name: "setServerPolicy"
+ runtime-configurable: true
- name: "servfail-on-no-server"
type: "bool"
default: "false"
LoadBalancingPoliciesConfiguration
----------------------------------
+- **default-policy**: String ``(leastOutstanding)``
- **servfail-on-no-server**: Boolean ``(false)``
- **round-robin-servfail-on-no-server**: Boolean ``(false)``
- **weighted-balancing-factor**: Double ``(0.0)``