78 lines
1.6 KiB
Rust
78 lines
1.6 KiB
Rust
use std::net::IpAddr;
|
|
|
|
use serde::Deserialize;
|
|
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct StressTestConfig {
|
|
pub firewalls: Vec<FirewallConfig>,
|
|
pub brocade: BrocadeConfig,
|
|
pub iperf: IperfConfig,
|
|
#[serde(default = "default_duration")]
|
|
pub duration_hours: f64,
|
|
#[serde(default = "default_web_port")]
|
|
pub web_port: u16,
|
|
#[serde(default = "default_reset_interval_hours")]
|
|
pub reset_interval_hours: f64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct FirewallConfig {
|
|
pub ip: IpAddr,
|
|
pub user: String,
|
|
pub pass: String,
|
|
pub role: FirewallRole,
|
|
pub api_key: String,
|
|
pub api_secret: String,
|
|
#[serde(default = "default_api_port")]
|
|
pub api_port: u16,
|
|
pub switch_ports: Vec<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
|
|
#[serde(rename_all = "lowercase")]
|
|
pub enum FirewallRole {
|
|
Primary,
|
|
Backup,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct BrocadeConfig {
|
|
pub ip: IpAddr,
|
|
pub user: String,
|
|
pub pass: String,
|
|
#[serde(default = "default_ssh_port")]
|
|
pub ssh_port: u16,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct IperfConfig {
|
|
pub target: String,
|
|
#[serde(default = "default_iperf_port")]
|
|
pub port: u16,
|
|
#[serde(default = "default_parallel")]
|
|
pub parallel: u32,
|
|
pub bandwidth: Option<String>,
|
|
}
|
|
|
|
fn default_duration() -> f64 {
|
|
12.0
|
|
}
|
|
fn default_web_port() -> u16 {
|
|
8080
|
|
}
|
|
fn default_reset_interval_hours() -> f64 {
|
|
2.0
|
|
}
|
|
fn default_api_port() -> u16 {
|
|
443
|
|
}
|
|
fn default_ssh_port() -> u16 {
|
|
22
|
|
}
|
|
fn default_iperf_port() -> u16 {
|
|
5201
|
|
}
|
|
fn default_parallel() -> u32 {
|
|
4
|
|
}
|