use clap::Parser;
use es_disk_planner::plan_capacity;
#[derive(Debug, Parser)]
struct Args {
#[arg(long)]
nodes: u32,
#[arg(long)]
primaries: u32,
#[arg(long, default_value_t = 1)]
replicas: u32,
#[arg(long, default_value_t = 50.0)]
shard_size_gb: f64,
#[arg(long, default_value_t = 0.20)]
overhead_merge: f64,
#[arg(long, default_value_t = 0.30)]
headroom: f64,
#[arg(long)]
buffer_per_node_gb: Option<f64>,
#[arg(long, default_value_t = 0.75)]
target_utilization: f64,
}
fn main() {
let a = Args::parse();
match plan_capacity(
a.nodes,
a.primaries,
a.replicas,
a.shard_size_gb,
a.overhead_merge,
a.headroom,
a.buffer_per_node_gb,
a.target_utilization,
) {
Ok(plan) => println!("{}", plan),
Err(e) => {
eprintln!("Error: {}", e);
std::process::exit(2);
}
}
}