blob: ba29583f2ffb76d62c9e97a0e619e2f49f71df4f (
plain) (
tree)
|
|
use df_consul::*;
#[tokio::main]
async fn main() {
let config = ConsulConfig {
addr: "http://localhost:8500".into(),
ca_cert: None,
tls_skip_verify: false,
client_cert: None,
client_key: None,
};
let consul = Consul::new(config, "").unwrap();
println!("== LIST NODES ==");
let nodes = consul.catalog_node_list(None).await.unwrap();
println!("{:?}", nodes);
if let Some(node) = nodes.first() {
println!("== NODE {} ==", node.node);
println!("{:?}", consul.catalog_node(&node.node, None).await.unwrap());
}
println!("== LIST SERVICES ==");
let services = consul.catalog_service_list(None).await.unwrap();
println!("{:?}", services);
if let Some(service) = services.keys().next() {
println!("== SERVICE NODES {} ==", service);
println!(
"{:?}",
consul.catalog_service_nodes(service, None).await.unwrap()
);
println!("== SERVICE HEALTH {} ==", service);
println!(
"{:?}",
consul
.health_service_instances(service, None)
.await
.unwrap()
);
}
println!("== WATCHING EVERYTHING ==");
let mut watch = consul.watch_all_service_health();
loop {
if watch.changed().await.is_err() {
break;
}
println!("\n{:?}", watch.borrow_and_update());
}
}
|