refactor: Migrate configuration to new UCI path prefix and boolean helper
This commit is contained in:
1 file changed
+44
-40
+44
-40
@@ -159,24 +159,24 @@ impl Config {
|
||||
// Network section
|
||||
download_base_kbits: Self::get::<f64>(
|
||||
"SQMA_DOWNLOAD_BASE_KBITS",
|
||||
"sqm-autorate.@network[0].download_base_kbits",
|
||||
"sqm-autorate-rust.@network[0].download_base_kbits",
|
||||
None,
|
||||
)?,
|
||||
download_interface: Self::get::<String>(
|
||||
"SQMA_DOWNLOAD_INTERFACE",
|
||||
"sqm-autorate.@network[0].download_interface",
|
||||
"sqm-autorate-rust.@network[0].download_interface",
|
||||
None,
|
||||
)?,
|
||||
download_min_percent: 0.0, // placeholder, computed below
|
||||
download_min_kbits: 0.0, // placeholder, computed below
|
||||
upload_base_kbits: Self::get::<f64>(
|
||||
"SQMA_UPLOAD_BASE_KBITS",
|
||||
"sqm-autorate.@network[0].upload_base_kbits",
|
||||
"sqm-autorate-rust.@network[0].upload_base_kbits",
|
||||
None,
|
||||
)?,
|
||||
upload_interface: Self::get::<String>(
|
||||
"SQMA_UPLOAD_INTERFACE",
|
||||
"sqm-autorate.@network[0].upload_interface",
|
||||
"sqm-autorate-rust.@network[0].upload_interface",
|
||||
None,
|
||||
)?,
|
||||
upload_min_percent: 0.0, // placeholder, computed below
|
||||
@@ -184,131 +184,135 @@ impl Config {
|
||||
// Output section
|
||||
log_level: Self::get::<Level>(
|
||||
"SQMA_LOG_LEVEL",
|
||||
"sqm-autorate.@output[0].log_level",
|
||||
"sqm-autorate-rust.@output[0].log_level",
|
||||
Some(Level::Error),
|
||||
)?,
|
||||
speed_hist_file: Self::get::<String>(
|
||||
"SQMA_SPEED_HIST_FILE",
|
||||
"sqm-autorate.@output[0].speed_hist_file",
|
||||
"sqm-autorate-rust.@output[0].speed_hist_file",
|
||||
Some("/tmp/sqm-speedhist.csv".parse()?),
|
||||
)?,
|
||||
stats_file: Self::get::<String>(
|
||||
"SQMA_STATS_FILE",
|
||||
"sqm-autorate.@output[0].stats_file",
|
||||
Some("/tmp/sqm-autorate.csv".parse()?),
|
||||
"sqm-autorate-rust.@output[0].stats_file",
|
||||
Some("/tmp/sqm-autorate-rust.csv".parse()?),
|
||||
)?,
|
||||
suppress_statistics: Self::get::<bool>(
|
||||
suppress_statistics: Self::get_bool(
|
||||
"SQMA_SUPPRESS_STATISTICS",
|
||||
"sqm-autorate.@output[0].suppress_statistics",
|
||||
"sqm-autorate-rust.@output[0].suppress_statistics",
|
||||
Some(false),
|
||||
)?,
|
||||
|
||||
// Observability section
|
||||
observability_enabled: Self::get::<bool>(
|
||||
observability_enabled: Self::get_bool(
|
||||
"SQMA_OBSERVABILITY_ENABLED",
|
||||
"sqm-autorate.@observability[0].enabled",
|
||||
"sqm-autorate-rust.@observability[0].enabled",
|
||||
Some(false),
|
||||
)?,
|
||||
observability_protocol: Self::get::<ObservabilityProtocol>(
|
||||
"SQMA_OBSERVABILITY_PROTOCOL",
|
||||
"sqm-autorate.@observability[0].protocol",
|
||||
"sqm-autorate-rust.@observability[0].protocol",
|
||||
Some(ObservabilityProtocol::Udp),
|
||||
)?,
|
||||
observability_host: Self::get_optional::<String>(
|
||||
"SQMA_OBSERVABILITY_HOST",
|
||||
"sqm-autorate.@observability[0].host",
|
||||
"sqm-autorate-rust.@observability[0].host",
|
||||
),
|
||||
observability_port: Self::get::<u16>(
|
||||
"SQMA_OBSERVABILITY_PORT",
|
||||
"sqm-autorate.@observability[0].port",
|
||||
"sqm-autorate-rust.@observability[0].port",
|
||||
Some(8089),
|
||||
)?,
|
||||
observability_batch_size: Self::get::<usize>(
|
||||
"SQMA_OBSERVABILITY_BATCH_SIZE",
|
||||
"sqm-autorate.@observability[0].batch_size",
|
||||
"sqm-autorate-rust.@observability[0].batch_size",
|
||||
Some(25),
|
||||
)?,
|
||||
observability_batch_timeout_ms: Self::get::<u64>(
|
||||
"SQMA_OBSERVABILITY_BATCH_TIMEOUT_MS",
|
||||
"sqm-autorate.@observability[0].batch_timeout_ms",
|
||||
"sqm-autorate-rust.@observability[0].batch_timeout_ms",
|
||||
Some(100),
|
||||
)?,
|
||||
observability_export_ping_metrics: Self::get::<bool>(
|
||||
observability_export_ping_metrics: Self::get_bool(
|
||||
"SQMA_OBSERVABILITY_EXPORT_PING_METRICS",
|
||||
"sqm-autorate.@observability[0].export_ping_metrics",
|
||||
"sqm-autorate-rust.@observability[0].export_ping_metrics",
|
||||
Some(false),
|
||||
)?,
|
||||
observability_export_rate_metrics: Self::get::<bool>(
|
||||
observability_export_rate_metrics: Self::get_bool(
|
||||
"SQMA_OBSERVABILITY_EXPORT_RATE_METRICS",
|
||||
"sqm-autorate.@observability[0].export_rate_metrics",
|
||||
"sqm-autorate-rust.@observability[0].export_rate_metrics",
|
||||
Some(true),
|
||||
)?,
|
||||
observability_export_baseline_metrics: Self::get::<bool>(
|
||||
observability_export_baseline_metrics: Self::get_bool(
|
||||
"SQMA_OBSERVABILITY_EXPORT_BASELINE_METRICS",
|
||||
"sqm-autorate.@observability[0].export_baseline_metrics",
|
||||
"sqm-autorate-rust.@observability[0].export_baseline_metrics",
|
||||
Some(false),
|
||||
)?,
|
||||
observability_export_events: Self::get::<bool>(
|
||||
observability_export_events: Self::get_bool(
|
||||
"SQMA_OBSERVABILITY_EXPORT_EVENTS",
|
||||
"sqm-autorate.@observability[0].export_events",
|
||||
"sqm-autorate-rust.@observability[0].export_events",
|
||||
Some(true),
|
||||
)?,
|
||||
observability_host_tag: Self::get_host_tag(),
|
||||
observability_host_tag: Self::get::<String>(
|
||||
"SQMA_OBSERVABILITY_HOST_TAG",
|
||||
"sqm-autorate-rust.@observability[0].host_tag",
|
||||
Some(Self::get_host_tag()),
|
||||
)?,
|
||||
|
||||
// Advanced section
|
||||
download_delay_ms: Self::get::<f64>(
|
||||
"SQMA_DOWNLOAD_DELAY_MS",
|
||||
"sqm-autorate.@advanced_settings[0].download_delay_ms",
|
||||
"sqm-autorate-rust.@advanced_settings[0].download_delay_ms",
|
||||
Some(15.0),
|
||||
)?,
|
||||
high_load_level: Self::get::<f64>(
|
||||
"SQMA_HIGH_LOAD_LEVEL",
|
||||
"sqm-autorate.@advanced_settings[0].high_load_level",
|
||||
"sqm-autorate-rust.@advanced_settings[0].high_load_level",
|
||||
Some(0.8),
|
||||
)?,
|
||||
measurement_type: Self::get::<MeasurementType>(
|
||||
"SQMA_MEASUREMENT_TYPE",
|
||||
"sqm-autorate.@advanced_settings[0].measurement_type",
|
||||
"sqm-autorate-rust.@advanced_settings[0].measurement_type",
|
||||
Some(MeasurementType::IcmpTimestamps),
|
||||
)?,
|
||||
min_change_interval: Self::get::<f64>(
|
||||
"SQMA_MIN_CHANGE_INTERVAL",
|
||||
"sqm-autorate.@advanced_settings[0].min_change_interval",
|
||||
"sqm-autorate-rust.@advanced_settings[0].min_change_interval",
|
||||
Some(0.5),
|
||||
)?,
|
||||
num_reflectors: Self::get::<u8>(
|
||||
"SQMA_NUM_REFLECTORS",
|
||||
"sqm-autorate.@advanced_settings[0].num_reflectors",
|
||||
"sqm-autorate-rust.@advanced_settings[0].num_reflectors",
|
||||
Some(5),
|
||||
)?,
|
||||
peer_reselection_time: Self::get::<u64>(
|
||||
"SQMA_PEER_RESELECTION_TIME",
|
||||
"sqm-autorate.@advanced_settings[0].peer_reselection_time",
|
||||
"sqm-autorate-rust.@advanced_settings[0].peer_reselection_time",
|
||||
Some(15),
|
||||
)?,
|
||||
reflector_list_file: Self::get::<String>(
|
||||
"SQMA_REFLECTOR_LIST_FILE",
|
||||
"sqm-autorate.@advanced_settings[0].reflector_list_file",
|
||||
"sqm-autorate-rust.@advanced_settings[0].reflector_list_file",
|
||||
Some("/etc/sqm-autorate/reflectors-icmp.csv".parse()?),
|
||||
)?,
|
||||
speed_hist_size: Self::get::<u32>(
|
||||
"SQMA_SPEED_HIST_SIZE",
|
||||
"sqm-autorate.@advanced_settings[0].speed_hist_size",
|
||||
"sqm-autorate-rust.@advanced_settings[0].speed_hist_size",
|
||||
Some(100),
|
||||
)?,
|
||||
tick_interval: Self::get::<f64>(
|
||||
"SQMA_TICK_INTERVAL",
|
||||
"sqm-autorate.@advanced_settings[0].tick_interval",
|
||||
"sqm-autorate-rust.@advanced_settings[0].tick_interval",
|
||||
Some(0.5),
|
||||
)?,
|
||||
upload_delay_ms: Self::get::<f64>(
|
||||
"SQMA_UPLOAD_DELAY_MS",
|
||||
"sqm-autorate.@advanced_settings[0].upload_delay_ms",
|
||||
"sqm-autorate-rust.@advanced_settings[0].upload_delay_ms",
|
||||
Some(15.0),
|
||||
)?,
|
||||
dry_run: Self::get::<bool>(
|
||||
dry_run: Self::get_bool(
|
||||
"SQMA_DRY_RUN",
|
||||
"sqm-autorate.@advanced_settings[0].dry_run",
|
||||
"sqm-autorate-rust.@advanced_settings[0].dry_run",
|
||||
Some(false),
|
||||
)?,
|
||||
};
|
||||
@@ -317,14 +321,14 @@ impl Config {
|
||||
|
||||
config.download_min_percent = Self::get::<f64>(
|
||||
"SQMA_DOWNLOAD_MIN_PERCENT",
|
||||
"sqm-autorate.@network[0].download_min_percent",
|
||||
"sqm-autorate-rust.@network[0].download_min_percent",
|
||||
Some(20.0),
|
||||
)?
|
||||
.clamp(1.0, 80.0);
|
||||
|
||||
config.upload_min_percent = Self::get::<f64>(
|
||||
"SQMA_UPLOAD_MIN_PERCENT",
|
||||
"sqm-autorate.@network[0].upload_min_percent",
|
||||
"sqm-autorate-rust.@network[0].upload_min_percent",
|
||||
Some(20.0),
|
||||
)?
|
||||
.clamp(1.0, 80.0);
|
||||
|
||||
Reference in new issue
Block a user