use std::net::{IpAddr, Ipv4Addr}; use brocade::BrocadeOptions; use harmony_types::switch::PortLocation; #[tokio::main] async fn main() { env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); let ip = IpAddr::V4(Ipv4Addr::new(10, 0, 0, 250)); // old brocade @ ianlet // let ip = IpAddr::V4(Ipv4Addr::new(192, 168, 55, 101)); // brocade @ sto1 let switch_addresses = vec![ip]; let brocade = brocade::init( &switch_addresses, 22, "admin", "password", Some(BrocadeOptions { dry_run: true, ..Default::default() }), ) .await .expect("Brocade client failed to connect"); let version = brocade.version().await.unwrap(); println!("Version: {version:?}"); println!("--------------"); let mac_adddresses = brocade.show_mac_address_table().await.unwrap(); println!("VLAN\tMAC\t\t\tPORT"); for mac in mac_adddresses { println!("{}\t{}\t{}", mac.vlan, mac.mac_address, mac.port); } println!("--------------"); let channel_name = "HARMONY_LAG"; brocade.clear_port_channel(channel_name).await.unwrap(); println!("--------------"); let channel_id = brocade.find_available_channel_id().await.unwrap(); println!("--------------"); let channel_name = "HARMONY_LAG"; let ports = [PortLocation(1, 1, 3), PortLocation(1, 1, 4)]; brocade .create_port_channel(channel_id, channel_name, &ports) .await .unwrap(); }