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
55 lines
1.7 KiB
Rust
55 lines
1.7 KiB
Rust
use tracing::error;
|
|
|
|
pub(crate) struct GwProbe {
|
|
path: String,
|
|
}
|
|
|
|
impl GwProbe {
|
|
pub(crate) fn new(probe_path: String) -> Self {
|
|
Self { path: probe_path }
|
|
}
|
|
|
|
pub(crate) async fn version(&self) -> String {
|
|
let mut command = tokio::process::Command::new(&self.path);
|
|
command.stdout(std::process::Stdio::piped());
|
|
command.arg("--version");
|
|
|
|
match command.spawn() {
|
|
Ok(child) => {
|
|
if let Ok(output) = child.wait_with_output().await {
|
|
return String::from_utf8(output.stdout)
|
|
.unwrap_or("Unable to get log from test run".to_string());
|
|
}
|
|
"Unable to get probe version".to_string()
|
|
}
|
|
Err(e) => {
|
|
error!("Failed to get probe version: {}", e);
|
|
"Failed to get probe version".to_string()
|
|
}
|
|
}
|
|
}
|
|
|
|
pub(crate) fn run_and_get_log(&self, gateway_key: &Option<String>) -> String {
|
|
let mut command = std::process::Command::new(&self.path);
|
|
command.stdout(std::process::Stdio::piped());
|
|
|
|
if let Some(gateway_id) = gateway_key {
|
|
command.arg("--gateway").arg(gateway_id);
|
|
}
|
|
|
|
match command.spawn() {
|
|
Ok(child) => {
|
|
if let Ok(output) = child.wait_with_output() {
|
|
return String::from_utf8(output.stdout)
|
|
.unwrap_or("Unable to get log from test run".to_string());
|
|
}
|
|
"Unable to get log from test run".to_string()
|
|
}
|
|
Err(e) => {
|
|
error!("Failed to spawn test: {}", e);
|
|
"Failed to spawn test run task".to_string()
|
|
}
|
|
}
|
|
}
|
|
}
|