33 lines
934 B
Rust
33 lines
934 B
Rust
use rocket::fairing::AdHoc;
|
|
use rocket::response::status;
|
|
use rocket::serde::json::Json;
|
|
use sea_orm_rocket::Connection;
|
|
use crate::api;
|
|
use crate::api::cluster::node::discover_nodes;
|
|
use crate::api::services::Services;
|
|
use crate::api::util::{raise_500, read_p5x_config};
|
|
|
|
#[get("/pubkey")]
|
|
fn get_pubkey() -> Result<String, status::Custom<String>> {
|
|
let config = read_p5x_config();
|
|
Ok(config.ssh_pubkey)
|
|
}
|
|
|
|
#[get("/discover-nodes")]
|
|
async fn trigger_discover_nodes(
|
|
conn: Connection<'_, api::Db>,
|
|
) -> Result<Json<serde_json::Value>, status::Custom<String>> {
|
|
let db = conn.into_inner();
|
|
let svc = Services::build(db).await.map_err(raise_500)?;
|
|
|
|
discover_nodes(&svc).await.map_err(raise_500)?;
|
|
|
|
Ok(Json(serde_json::json!({})))
|
|
}
|
|
|
|
pub(super) fn init() -> AdHoc {
|
|
AdHoc::on_ignite("Routes: /system", |rocket| async {
|
|
rocket.mount("/system", routes![get_pubkey, trigger_discover_nodes])
|
|
})
|
|
}
|