refactor
parent
27c21e5cd9
commit
52431ffd6f
|
|
@ -32,7 +32,7 @@ mod metrics_unittets {
|
||||||
assert!(true);
|
assert!(true);
|
||||||
}
|
}
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn init_sumodules() {
|
async fn get_metrics_grubber() {
|
||||||
assert!(true);
|
assert!(true);
|
||||||
}
|
}
|
||||||
// Option<Vec<TrackingProcess OR String>> output
|
// Option<Vec<TrackingProcess OR String>> output
|
||||||
|
|
|
||||||
|
|
@ -5,18 +5,19 @@ use std::process::{Command, Output};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use tokio::time::Duration;
|
use tokio::time::Duration;
|
||||||
|
|
||||||
pub async fn get_pid(name: &str) -> Result<Output, std::io::Error> {
|
pub async fn get_pid(name: &str) -> Option<Output> {
|
||||||
let name = Arc::new(name.to_string());
|
let name = Arc::new(name.to_string());
|
||||||
let res =
|
let res =
|
||||||
tokio::task::spawn_blocking(move || Command::new("pidof").arg(&*name).output()).await?;
|
// todo : unwrap change - can be unsafe
|
||||||
|
tokio::task::spawn_blocking(move || Command::new("pidof").arg(&*name).output()).await.unwrap();
|
||||||
if let Ok(output) = res {
|
if let Ok(output) = res {
|
||||||
if output.stderr.is_empty() && output.stdout.is_empty() {
|
if output.stderr.is_empty() && output.stdout.is_empty() {
|
||||||
return Err(io::ErrorKind::NotFound.into());
|
None
|
||||||
} else {
|
} else {
|
||||||
Ok(output)
|
Some(output)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return Err(io::ErrorKind::NotFound.into());
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ! can be with bug !!!
|
// ! can be with bug !!!
|
||||||
|
|
@ -40,7 +41,7 @@ pub async fn is_active(name: &str) -> bool {
|
||||||
// T is for stopped processes
|
// T is for stopped processes
|
||||||
pub async fn is_frozen(name: &str) -> bool {
|
pub async fn is_frozen(name: &str) -> bool {
|
||||||
let temp: Output;
|
let temp: Output;
|
||||||
if let Ok(output) = get_pid(name).await {
|
if let Some(output) = get_pid(name).await {
|
||||||
temp = output;
|
temp = output;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -128,7 +129,6 @@ mod process_unittests {
|
||||||
// rewrite, its a pipe
|
// rewrite, its a pipe
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn full_cycle_with_restart() {
|
async fn full_cycle_with_restart() {
|
||||||
assert!(true);
|
|
||||||
let res1 = start_process("temp-process", "/home/user/monitor/runner-rs/temp-process").await;
|
let res1 = start_process("temp-process", "/home/user/monitor/runner-rs/temp-process").await;
|
||||||
assert!(res1.is_ok());
|
assert!(res1.is_ok());
|
||||||
let res2 =
|
let res2 =
|
||||||
|
|
@ -157,12 +157,12 @@ mod process_unittests {
|
||||||
}
|
}
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn pidof_active_process() {
|
async fn pidof_active_process() {
|
||||||
assert!(get_pid("systemd").await.is_ok());
|
assert!(get_pid("systemd").await.is_some());
|
||||||
}
|
}
|
||||||
|
|
||||||
// broken mechanism need to check
|
// broken mechanism need to check
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn pidof_disabled_process() {
|
async fn pidof_disabled_process() {
|
||||||
assert!(get_pid("invalid-process-name").await.is_err());
|
assert!(get_pid("invalid-process-name").await.is_none());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue