use std::net::{SocketAddr, SocketAddrV4}; use harmony::{ inventory::Inventory, modules::{ dns::DnsScore, dummy::{ErrorScore, PanicScore, SuccessScore}, load_balancer::LoadBalancerScore, }, topology::{ BackendServer, DummyInfra, HealthCheck, HttpMethod, HttpStatusCode, LoadBalancerService, }, }; use harmony_macros::ipv4; #[tokio::main] async fn main() { harmony_tui::run( Inventory::autoload(), DummyInfra {}, vec![ Box::new(SuccessScore {}), Box::new(ErrorScore {}), Box::new(PanicScore {}), Box::new(DnsScore::new(vec![], None)), Box::new(build_large_score()), ], ) .await .unwrap(); } fn build_large_score() -> LoadBalancerScore { let backend_server = BackendServer { address: "192.168.0.0".to_string(), port: 342, }; let lb_service = LoadBalancerService { backend_servers: vec![ backend_server.clone(), backend_server.clone(), backend_server.clone(), ], listening_port: SocketAddr::V4(SocketAddrV4::new(ipv4!("192.168.0.0"), 49387)), health_check: Some(HealthCheck::HTTP( "/some_long_ass_path_to_see_how_it_is_displayed_but_it_has_to_be_even_longer" .to_string(), HttpMethod::GET, HttpStatusCode::Success2xx, )), }; LoadBalancerScore { public_services: vec![ lb_service.clone(), lb_service.clone(), lb_service.clone(), lb_service.clone(), lb_service.clone(), lb_service.clone(), ], private_services: vec![ lb_service.clone(), lb_service.clone(), lb_service.clone(), lb_service.clone(), lb_service.clone(), lb_service.clone(), ], } }