use rpki::ca::idexchange::CaHandle;
use crate::cli::client::KrillClient;
use crate::cli::report::Report;
use crate::api;
use crate::commons::httpclient;
#[derive(clap::Parser)]
pub struct Health;
impl Health {
pub async fn run(
self, client: &KrillClient
) -> Result<api::status::Success, httpclient::Error> {
client.authorized().await
}
}
#[derive(clap::Parser)]
pub struct Info;
impl Info {
pub async fn run(
self, client: &KrillClient
) -> Result<api::admin::ServerInfo, httpclient::Error> {
client.info().await
}
}
#[derive(clap::Parser)]
pub struct Issues {
#[arg(long, short, env = "KRILL_CLI_MY_CA")]
ca: Option<CaHandle>,
}
impl Issues {
pub async fn run(self, client: &KrillClient) -> Report {
match self.ca {
Some(ca) => {
client.ca_issues(&ca).await.into()
}
None => client.bulk_issues().await.into()
}
}
}