chore: Add heavy score example to tui to see what it looks like with long output. Good enough as a step forward!
This commit is contained in:
parent
d937ddca3a
commit
27f6ed97f9
@ -1,5 +1,9 @@
|
|||||||
use harmony::{
|
use harmony::{
|
||||||
data::Version, inventory::Inventory, maestro::Maestro, modules::lamp::{LAMPConfig, LAMPScore}, topology::{HAClusterTopology, Url}
|
data::Version,
|
||||||
|
inventory::Inventory,
|
||||||
|
maestro::Maestro,
|
||||||
|
modules::lamp::{LAMPConfig, LAMPScore},
|
||||||
|
topology::{HAClusterTopology, Url},
|
||||||
};
|
};
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
|
|||||||
@ -1,12 +1,20 @@
|
|||||||
|
use std::net::{SocketAddr, SocketAddrV4};
|
||||||
|
|
||||||
use harmony::{
|
use harmony::{
|
||||||
inventory::Inventory,
|
inventory::Inventory,
|
||||||
maestro::Maestro,
|
maestro::Maestro,
|
||||||
modules::{
|
modules::{
|
||||||
dns::DnsScore,
|
dns::DnsScore,
|
||||||
dummy::{ErrorScore, PanicScore, SuccessScore},
|
dummy::{ErrorScore, PanicScore, SuccessScore},
|
||||||
|
load_balancer::LoadBalancerScore,
|
||||||
|
okd::load_balancer::OKDLoadBalancerScore,
|
||||||
|
},
|
||||||
|
topology::{
|
||||||
|
BackendServer, HAClusterTopology, HealthCheck, HttpMethod, HttpStatusCode,
|
||||||
|
LoadBalancerService,
|
||||||
},
|
},
|
||||||
topology::HAClusterTopology,
|
|
||||||
};
|
};
|
||||||
|
use harmony_macros::ipv4;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
@ -14,11 +22,49 @@ async fn main() {
|
|||||||
let topology = HAClusterTopology::autoload();
|
let topology = HAClusterTopology::autoload();
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
let mut maestro = Maestro::new(inventory, topology);
|
||||||
|
|
||||||
|
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,
|
||||||
|
)),
|
||||||
|
};
|
||||||
|
let okd_lbscore = 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(),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
maestro.register_all(vec![
|
maestro.register_all(vec![
|
||||||
Box::new(SuccessScore {}),
|
Box::new(SuccessScore {}),
|
||||||
Box::new(ErrorScore {}),
|
Box::new(ErrorScore {}),
|
||||||
Box::new(PanicScore {}),
|
Box::new(PanicScore {}),
|
||||||
Box::new(DnsScore::new(vec![], None)),
|
Box::new(DnsScore::new(vec![], None)),
|
||||||
|
Box::new(okd_lbscore),
|
||||||
]);
|
]);
|
||||||
harmony_tui::init(maestro).await.unwrap();
|
harmony_tui::init(maestro).await.unwrap();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -225,7 +225,7 @@ mod tests {
|
|||||||
let dns_score = Box::new(DnsScore::new(vec![], None));
|
let dns_score = Box::new(DnsScore::new(vec![], None));
|
||||||
let print_score_output =
|
let print_score_output =
|
||||||
<DnsScore as ScoreToString<HAClusterTopology>>::print_score_details(&dns_score);
|
<DnsScore as ScoreToString<HAClusterTopology>>::print_score_details(&dns_score);
|
||||||
let expected_empty_dns_score_table = "\n+--------------------------+----------------------------+\n| score_name | DnsScore |\n+--------------------------+----------------------------+\n| dns_entries | [] |\n| register_dhcp_leases | None |\n+--------------------------+----------------------------+\n\n\n";
|
let expected_empty_dns_score_table = "\n+--------------------------+--------------------------------------------------+\n| score_name | DnsScore |\n+--------------------------+--------------------------------------------------+\n| dns_entries | [] |\n| register_dhcp_leases | None |\n+--------------------------+--------------------------------------------------+\n\n\n";
|
||||||
assert_eq!(print_score_output, expected_empty_dns_score_table);
|
assert_eq!(print_score_output, expected_empty_dns_score_table);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,6 +46,7 @@ pub struct LoadBalancerService {
|
|||||||
|
|
||||||
#[derive(Debug, PartialEq, Clone, Serialize)]
|
#[derive(Debug, PartialEq, Clone, Serialize)]
|
||||||
pub struct BackendServer {
|
pub struct BackendServer {
|
||||||
|
// TODO should not be a string, probably IPAddress
|
||||||
pub address: String,
|
pub address: String,
|
||||||
pub port: u16,
|
pub port: u16,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -125,7 +125,6 @@ impl<T: Topology + std::fmt::Debug + Send + Sync + 'static> HarmonyTUI<T> {
|
|||||||
std::fs::create_dir_all("log")?;
|
std::fs::create_dir_all("log")?;
|
||||||
tui_logger::set_log_file("log/harmony.log").unwrap();
|
tui_logger::set_log_file("log/harmony.log").unwrap();
|
||||||
|
|
||||||
|
|
||||||
color_eyre::install()?;
|
color_eyre::install()?;
|
||||||
let mut terminal = ratatui::init();
|
let mut terminal = ratatui::init();
|
||||||
log_panics::init();
|
log_panics::init();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user