cc983963d4
* Compile & copy wg probe * Node status agent WIP * Enable debug logging * Agent submits results - add clap to agent - agent runs network probe - /submit endpoint on NS API * Build clients with timeouts * Update logging and dev scripts * Replace /blaclisted endpoint * Testruns fully functional - task that queues testruns periodically - testruns read/write in DB * Probe scores fully working - testruns are assigned on API - submit updates testruns correctly on NS API side - agent registers with API - agent submits results correctly * Clippy fixes * PR feedback * Clippy again * PR feedback * Run clippy earlier in CI * Make refresh delay configurable in server & agent
54 lines
1.3 KiB
Rust
54 lines
1.3 KiB
Rust
use clap::Parser;
|
|
use nym_task::signal::wait_for_signal;
|
|
|
|
mod cli;
|
|
mod db;
|
|
mod http;
|
|
mod logging;
|
|
mod monitor;
|
|
mod testruns;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> anyhow::Result<()> {
|
|
logging::setup_tracing_logger()?;
|
|
|
|
let args = cli::Cli::parse();
|
|
|
|
let connection_url = args.database_url.clone();
|
|
tracing::debug!("Using config:\n{:#?}", args);
|
|
|
|
let storage = db::Storage::init(connection_url).await?;
|
|
let db_pool = storage.pool_owned();
|
|
let args_clone = args.clone();
|
|
tokio::spawn(async move {
|
|
monitor::spawn_in_background(
|
|
db_pool,
|
|
args_clone.explorer_client_timeout,
|
|
args_clone.nym_api_client_timeout,
|
|
&args_clone.nyxd_addr,
|
|
args_clone.monitor_refresh_interval,
|
|
)
|
|
.await;
|
|
tracing::info!("Started monitor task");
|
|
});
|
|
testruns::spawn(storage.pool_owned(), args.testruns_refresh_interval).await;
|
|
|
|
let shutdown_handles = http::server::start_http_api(
|
|
storage.pool_owned(),
|
|
args.http_port,
|
|
args.nym_http_cache_ttl,
|
|
)
|
|
.await
|
|
.expect("Failed to start server");
|
|
|
|
tracing::info!("Started HTTP server on port {}", args.http_port);
|
|
|
|
wait_for_signal().await;
|
|
|
|
if let Err(err) = shutdown_handles.shutdown().await {
|
|
tracing::error!("{err}");
|
|
};
|
|
|
|
Ok(())
|
|
}
|