1pub mod cni;
2pub mod libcni;
3pub mod namespace;
4
5pub fn is_debug_logging() -> bool {
6 log::log_enabled!(log::Level::Debug)
7}
8
9#[cfg(test)]
10pub mod test {
11 use super::*;
12 use crate::cni;
13 use env_logger::Env;
14 use log::{error, info};
15 #[test]
16 fn test_cni_add_remove() {
17 env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
18 info!("Starting CNI test");
19
20 let mut cni = cni::Libcni::default();
21 cni.load_default_conf();
22
23 let pid = std::process::id();
24 let path = format!("/proc/{}/ns/net", pid);
25 let id = "test".to_string();
26
27 info!("Setting up network for container {}", id);
28 let setup_result = cni.setup(id.clone(), path.clone());
29 match &setup_result {
30 Ok(_) => info!("Network setup successful"),
31 Err(e) => error!("Network setup failed: {}", e),
32 }
33
34 info!("Removing network for container {}", id);
35 let remove_result = cni.remove(id.clone(), path.clone());
36 match &remove_result {
37 Ok(_) => info!("Network removal successful"),
38 Err(e) => error!("Network removal failed: {}", e),
39 }
40 }
41}