diff options
| author | diogo464 <[email protected]> | 2025-07-11 16:27:18 +0100 |
|---|---|---|
| committer | diogo464 <[email protected]> | 2025-07-11 16:27:18 +0100 |
| commit | d963becfada6eb81536e462f6e79cfc389c917a4 (patch) | |
| tree | 3cfa5c1190b616fd00ab9860ec1335fe38f8bbc0 /src | |
| parent | a99af8dc92e33c7db358b38a4b5135442b4ecac1 (diff) | |
fix: add error handling for latency matrix dimension check
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 25d9d13..58088ec 100644 --- a/src/main.rs +++ b/src/main.rs | |||
| @@ -155,7 +155,7 @@ async fn cmd_net_up(args: NetUpArgs) -> Result<()> { | |||
| 155 | let matrix = LatencyMatrix::parse(&matrix_content, latency_matrix::TimeUnit::Milliseconds) | 155 | let matrix = LatencyMatrix::parse(&matrix_content, latency_matrix::TimeUnit::Milliseconds) |
| 156 | .context("parsing latency matrix")?; | 156 | .context("parsing latency matrix")?; |
| 157 | let machines = oar::job_list_machines(&context).await?; | 157 | let machines = oar::job_list_machines(&context).await?; |
| 158 | let configs = machine_generate_configs(&matrix, &machines, &args.addresses); | 158 | let configs = machine_generate_configs(&matrix, &machines, &args.addresses)?; |
| 159 | machines_net_container_build(&context, &machines).await?; | 159 | machines_net_container_build(&context, &machines).await?; |
| 160 | machines_clean(&context, &machines).await?; | 160 | machines_clean(&context, &machines).await?; |
| 161 | machines_configure(&context, &configs).await?; | 161 | machines_configure(&context, &configs).await?; |
| @@ -199,7 +199,7 @@ async fn cmd_net_preview(args: NetPreviewArgs) -> Result<()> { | |||
| 199 | let matrix = LatencyMatrix::parse(&matrix_content, latency_matrix::TimeUnit::Milliseconds) | 199 | let matrix = LatencyMatrix::parse(&matrix_content, latency_matrix::TimeUnit::Milliseconds) |
| 200 | .context("parsing latency matrix")?; | 200 | .context("parsing latency matrix")?; |
| 201 | let machines = args.machine; | 201 | let machines = args.machine; |
| 202 | let configs = machine_generate_configs(&matrix, &machines, &args.addresses); | 202 | let configs = machine_generate_configs(&matrix, &machines, &args.addresses)?; |
| 203 | 203 | ||
| 204 | for config in configs { | 204 | for config in configs { |
| 205 | (0..20).for_each(|_| print!("-")); | 205 | (0..20).for_each(|_| print!("-")); |
| @@ -767,7 +767,7 @@ fn machine_generate_configs( | |||
| 767 | matrix: &LatencyMatrix, | 767 | matrix: &LatencyMatrix, |
| 768 | machines: &[Machine], | 768 | machines: &[Machine], |
| 769 | addr_policy: &AddressAllocationPolicy, | 769 | addr_policy: &AddressAllocationPolicy, |
| 770 | ) -> Vec<MachineConfig> { | 770 | ) -> Result<Vec<MachineConfig>> { |
| 771 | let mut configs = Vec::default(); | 771 | let mut configs = Vec::default(); |
| 772 | let mut addresses = Vec::default(); | 772 | let mut addresses = Vec::default(); |
| 773 | let mut address_to_index = HashMap::<Ipv4Addr, usize>::default(); | 773 | let mut address_to_index = HashMap::<Ipv4Addr, usize>::default(); |
| @@ -813,6 +813,14 @@ fn machine_generate_configs( | |||
| 813 | .push(address); | 813 | .push(address); |
| 814 | } | 814 | } |
| 815 | 815 | ||
| 816 | if addresses.len() > matrix.dimension() { | ||
| 817 | return Err(eyre::eyre!( | ||
| 818 | "latency matrix is too small, size is {} but {} was required", | ||
| 819 | matrix.dimension(), | ||
| 820 | addresses.len() | ||
| 821 | )); | ||
| 822 | } | ||
| 823 | |||
| 816 | for &machine in machines { | 824 | for &machine in machines { |
| 817 | let machine_addresses = &addresses_per_machine[&machine]; | 825 | let machine_addresses = &addresses_per_machine[&machine]; |
| 818 | let mut machine_ip_commands = Vec::default(); | 826 | let mut machine_ip_commands = Vec::default(); |
| @@ -908,5 +916,5 @@ fn machine_generate_configs( | |||
| 908 | ip_commands: machine_ip_commands, | 916 | ip_commands: machine_ip_commands, |
| 909 | }); | 917 | }); |
| 910 | } | 918 | } |
| 911 | configs | 919 | Ok(configs) |
| 912 | } | 920 | } |
