Repository navigation
Expand file tree
/
Copy pathbasic.rs
More file actions
54 lines (39 loc) · 1.31 KB
/
Copy pathbasic.rs
File metadata and controls
54 lines (39 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
use brctl::{BridgeController, CommandError};
fn main() -> Result<(), CommandError> {
env_logger::init();
match BridgeController::check() {
Ok((brctl_version, interfaces)) => {
println!("brctl version: {}", brctl_version);
println!("Interfaces: {:?}", interfaces);
println!("The system is ready for bridge operations!")
}
Err(e) => eprintln!("The system is not ready for bridge operations: {}", e),
}
println!();
if let Some(mybridge) = BridgeController::get_bridge("mybridge")? {
mybridge.delete()?;
}
let mybridge = BridgeController::create_bridge("mybridge")?;
mybridge.add_interface("enp9s0")?;
let bridges = BridgeController::list_bridges()?;
println!("Available bridges:");
for b in bridges {
println!(" - {}", b);
}
println!();
println!("{}:", mybridge.get_name());
println!(" Interfaces:");
for i in mybridge.get_interfaces()? {
println!(" - {}", i);
}
println!(" ID: {}", mybridge.get_id()?);
println!(" STP: {}", mybridge.get_stp()?);
println!();
let mybridge = BridgeController::get_bridge("mybridge")?;
assert!(mybridge.is_some(), "Bridge not found");
mybridge.expect("Bridge not found").delete()?;
let mybridge = BridgeController::get_bridge("mybridge")?;
assert!(mybridge.is_none(), "Bridge not deleted");
println!("Bridge deleted successfully");
Ok(())
}