use dragonfly_client_request::{Proxy, Request, StatImageRequest};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Vec<String> = std::env::args().collect();
if args.len() != 3 {
eprintln!("usage: {} <scheduler-endpoint> <image>", args[0]);
std::process::exit(1);
}
let proxy = Proxy::builder()
.scheduler_endpoint(args[1].clone())
.build()
.await?;
let response = proxy
.stat_image(&StatImageRequest {
image: args[2].clone(),
..Default::default()
})
.await?;
println!("image has {} layers", response.layers.len());
for peer in response.peers.iter() {
let finished = peer
.cached_layers
.iter()
.filter(|layer| layer.is_finished)
.count();
println!(
"peer {} ({}) finished {} of {} cached layers",
peer.hostname,
peer.ip,
finished,
peer.cached_layers.len()
);
}
Ok(())
}