Format run

This commit is contained in:
Herbert Wolverson 2024-04-30 13:10:16 -05:00
parent abe16aff39
commit cbd0a785ce
9 changed files with 70 additions and 51 deletions

View File

@ -1,11 +1,11 @@
use std::fs;
use std::path::Path;
use serde::Serialize;
use crate::errors::UispIntegrationError;
use crate::ip_ranges::IpRanges;
use lqos_config::Config;
use tracing::{error, info};
use crate::uisp_types::UispDevice;
use lqos_config::Config;
use serde::Serialize;
use std::fs;
use std::path::Path;
use tracing::{error, info};
#[derive(Serialize, Debug)]
struct ShapedDevice {
@ -29,14 +29,14 @@ pub async fn build_flat_network(
ip_ranges: IpRanges,
) -> Result<(), UispIntegrationError> {
// Load the devices from UISP
let devices = uisp::load_all_devices_with_interfaces(config.clone()).await
let devices = uisp::load_all_devices_with_interfaces(config.clone())
.await
.map_err(|e| {
error!("Unable to load device list from UISP");
error!("{e:?}");
UispIntegrationError::UispConnectError
})?;
let sites = uisp::load_all_sites(config.clone()).await
.map_err(|e| {
let sites = uisp::load_all_sites(config.clone()).await.map_err(|e| {
error!("Unable to load device list from UISP");
error!("{e:?}");
UispIntegrationError::UispConnectError
@ -44,8 +44,7 @@ pub async fn build_flat_network(
// Create a {} network.json
let net_json_path = Path::new(&config.lqos_directory).join("network.json");
fs::write(net_json_path, "{}\n")
.map_err(|e| {
fs::write(net_json_path, "{}\n").map_err(|e| {
error!("Unable to access network.json");
error!("{e:?}");
UispIntegrationError::WriteNetJson
@ -57,7 +56,10 @@ pub async fn build_flat_network(
if let Some(site_id) = &site.identification {
if let Some(site_type) = &site_id.site_type {
if site_type == "endpoint" {
let (download_max, upload_max) = site.qos(config.queues.generated_pn_download_mbps, config.queues.generated_pn_upload_mbps);
let (download_max, upload_max) = site.qos(
config.queues.generated_pn_download_mbps,
config.queues.generated_pn_upload_mbps,
);
let download_min = (download_max as f32
* config.uisp_integration.commit_bandwidth_multiplier)
as u64;

View File

@ -1,10 +1,10 @@
use crate::errors::UispIntegrationError;
use crate::uisp_types::UispSite;
use csv::ReaderBuilder;
use lqos_config::Config;
use std::collections::HashMap;
use std::path::Path;
use tracing::{error, info};
use crate::uisp_types::UispSite;
pub type BandwidthOverrides = HashMap<String, (f32, f32)>;
@ -75,7 +75,10 @@ pub fn apply_bandwidth_overrides(sites: &mut [UispSite], bandwidth_overrides: &B
// Apply the overrides
site.max_down_mbps = *down as u32;
site.max_up_mbps = *up as u32;
info!("Bandwidth override for {} applied ({} / {})", &site.name, site.max_down_mbps, site.max_up_mbps);
info!(
"Bandwidth override for {} applied ({} / {})",
&site.name, site.max_down_mbps, site.max_up_mbps
);
}
}
}

View File

@ -15,7 +15,9 @@ mod zero_capacity_sites;
use crate::errors::UispIntegrationError;
use crate::ip_ranges::IpRanges;
use crate::strategies::full::ap_promotion::promote_access_points;
use crate::strategies::full::bandwidth_overrides::{apply_bandwidth_overrides, get_site_bandwidth_overrides};
use crate::strategies::full::bandwidth_overrides::{
apply_bandwidth_overrides, get_site_bandwidth_overrides,
};
use crate::strategies::full::client_site_promotion::promote_clients_with_children;
use crate::strategies::full::network_json::write_network_file;
use crate::strategies::full::parse::parse_uisp_datasets;
@ -26,10 +28,10 @@ use crate::strategies::full::squash_single_entry_aps::squash_single_aps;
use crate::strategies::full::tree_walk::walk_tree_for_routing;
use crate::strategies::full::uisp_fetch::load_uisp_data;
use crate::strategies::full::utils::{print_sites, warn_of_no_parents_and_promote};
use crate::strategies::full::zero_capacity_sites::correct_zero_capacity_sites;
use crate::uisp_types::{UispSite, UispSiteType};
pub use bandwidth_overrides::BandwidthOverrides;
use lqos_config::Config;
use crate::strategies::full::zero_capacity_sites::correct_zero_capacity_sites;
/// Attempt to construct a full hierarchy topology for the UISP network.
pub async fn build_full_network(
@ -101,8 +103,6 @@ pub async fn build_full_network(
// Correct any sites with zero capacity
correct_zero_capacity_sites(&mut sites, &config);
// Print Sites
if let Some(root_idx) = sites.iter().position(|s| s.name == root_site) {
// Issue No Parent Warnings

View File

@ -31,10 +31,7 @@ pub fn parse_uisp_datasets(
(sites, data_links, devices)
}
fn parse_sites(
sites_raw: &[Site],
config: &Config,
) -> Vec<UispSite> {
fn parse_sites(sites_raw: &[Site], config: &Config) -> Vec<UispSite> {
let sites: Vec<UispSite> = sites_raw
.iter()
.map(|s| UispSite::from_uisp(s, config))

View File

@ -39,10 +39,7 @@ fn handle_multiple_internet_connected_sites(
let mut root_site_name = String::new();
let mut candidates = Vec::new();
data_links
.iter()
.filter(|l| !l.can_delete)
.for_each(|l| {
data_links.iter().filter(|l| !l.can_delete).for_each(|l| {
candidates.push(l.from_site_name.clone());
});
@ -188,8 +185,6 @@ mod test {
];
let result = find_root_site(&cfg, &mut sites, &data_links);
assert!(result.is_ok());
assert!(sites
.iter()
.any(|s| s.name == "INSERTED_INTERNET"));
assert!(sites.iter().any(|s| s.name == "INSERTED_INTERNET"));
}
}

View File

@ -32,7 +32,15 @@ pub fn write_shaped_devices(
let mut shaped_devices = Vec::new();
// Traverse
traverse(sites, root_idx, 0, devices, &mut shaped_devices, config, root_idx);
traverse(
sites,
root_idx,
0,
devices,
&mut shaped_devices,
config,
root_idx,
);
// Write the CSV
let mut writer = csv::WriterBuilder::new()
@ -146,7 +154,15 @@ fn traverse(
for (child_idx, child) in sites.iter().enumerate() {
if let Some(parent_idx) = child.selected_parent {
if parent_idx == idx {
traverse(sites, child_idx, depth + 1, devices, shaped_devices, config, root_idx);
traverse(
sites,
child_idx,
depth + 1,
devices,
shaped_devices,
config,
root_idx,
);
}
}
}

View File

@ -1,6 +1,6 @@
use crate::uisp_types::{UispSite, UispSiteType};
use tracing::warn;
use lqos_config::Config;
use tracing::warn;
use uisp::Device;
/// Counts how many devices are present at a siteId. It's a simple
@ -46,7 +46,12 @@ fn iterate_child_sites(sites: &[UispSite], parent: usize, indent: usize) {
});
}
pub fn warn_of_no_parents_and_promote(sites: &mut Vec<UispSite>, devices_raw: &[Device], root_idx: usize, config: &Config) {
pub fn warn_of_no_parents_and_promote(
sites: &mut Vec<UispSite>,
devices_raw: &[Device],
root_idx: usize,
config: &Config,
) {
let mut orphans = Vec::new();
sites
@ -78,7 +83,11 @@ pub fn warn_of_no_parents_and_promote(sites: &mut Vec<UispSite>, devices_raw: &[
sites.push(orphanage);
for orphan_id in orphans {
if let Some((_, site)) = sites.iter_mut().enumerate().find(|(idx, s)| *idx != root_idx && s.id == orphan_id) {
if let Some((_, site)) = sites
.iter_mut()
.enumerate()
.find(|(idx, s)| *idx != root_idx && s.id == orphan_id)
{
site.selected_parent = Some(orgphanage_id);
}
}

View File

@ -1,8 +1,8 @@
use lqos_config::Config;
use crate::uisp_types::UispSite;
use lqos_config::Config;
pub fn correct_zero_capacity_sites(sites: &mut [UispSite], config: &Config) {
for i in 0 .. sites.len() {
for i in 0..sites.len() {
if sites[i].max_down_mbps == 0 {
if let Some(parent_idx) = sites[i].selected_parent {
sites[i].max_down_mbps = sites[parent_idx].max_down_mbps;

View File

@ -40,10 +40,7 @@ impl Default for UispSite {
}
impl UispSite {
pub fn from_uisp(
value: &Site,
config: &Config,
) -> Self {
pub fn from_uisp(value: &Site, config: &Config) -> Self {
let mut uisp_parent_id = None;
if let Some(id) = &value.identification {