forked from NationTech/harmony
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use std::net::{SocketAddr, SocketAddrV4};
 | |
| 
 | |
| use harmony::{
 | |
|     inventory::Inventory,
 | |
|     maestro::Maestro,
 | |
|     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() {
 | |
|     let inventory = Inventory::autoload();
 | |
|     let topology = DummyInfra {};
 | |
|     let mut maestro = Maestro::initialize(inventory, topology).await.unwrap();
 | |
| 
 | |
|     maestro.register_all(vec![
 | |
|         Box::new(SuccessScore {}),
 | |
|         Box::new(ErrorScore {}),
 | |
|         Box::new(PanicScore {}),
 | |
|         Box::new(DnsScore::new(vec![], None)),
 | |
|         Box::new(build_large_score()),
 | |
|     ]);
 | |
|     harmony_tui::init(maestro).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(),
 | |
|         ],
 | |
|     }
 | |
| }
 |