From 7677fa1f55d63f421cbed6a6cba4fe4fe67b26ee Mon Sep 17 00:00:00 2001 From: prplV Date: Tue, 12 Nov 2024 12:28:46 +0300 Subject: [PATCH] fixed hagent work --- src/options/structs.rs | 10 +++++----- src/utils/hagent.rs | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/options/structs.rs b/src/options/structs.rs index 1aedb94..d0ea23d 100644 --- a/src/options/structs.rs +++ b/src/options/structs.rs @@ -84,7 +84,7 @@ pub struct FIleTriggers { /// /// -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize,)] pub struct Metrics { pub container_metrics : ContainerMetrics, pub processes_metrics : Vec, @@ -103,7 +103,7 @@ impl Metrics { /// /// -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize)] pub struct ContainerMetrics { container_id : String, cpu_load : f32, @@ -125,9 +125,9 @@ impl ContainerMetrics { /// /// -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize)] pub struct ProcessMetrics { - process_name : String, + pub process_name : String, cpu_load : f32, ram_load : f32, } @@ -142,7 +142,7 @@ impl ProcessMetrics { } } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize)] pub struct PacketInfo { protocol : String, dst_ip : Ipv4Addr, diff --git a/src/utils/hagent.rs b/src/utils/hagent.rs index 4fd8d75..c74cb9e 100644 --- a/src/utils/hagent.rs +++ b/src/utils/hagent.rs @@ -35,6 +35,10 @@ async fn ha_send_data(socket: &UnixStream, data: &str) -> Result<(), std::io::Er #[cfg(test)] mod hagent_unittets { + use log::info; + + use crate::utils::metrics; + use super::*; #[tokio::test] // maybe bool : true -> alive, false -> dead @@ -46,10 +50,20 @@ mod hagent_unittets { assert!(ha_healthcheck(&sock).await.is_ok()); } #[tokio::test] - // Result + // --Result // one-shot func async fn send_metrics_to_hagent() { - assert!(true); + let procm = crate::options::structs::ProcessMetrics::new("test-prc", 15.0, 5.0); + let contm = crate::options::structs::ContainerMetrics::new("test", 32.0, 12.0, vec![procm.process_name.clone()]); + let metrics = crate::options::structs::Metrics::new(contm, vec![procm]); + let metrics = &serde_json::to_string_pretty(&metrics).unwrap(); + + let sock = open_unix_socket().await; + assert!(sock.is_ok()); + let sock = sock.unwrap(); + assert!(ha_healthcheck(&sock).await.is_ok()); + assert!(ha_send_data(&sock, &metrics).await.is_ok()); + } #[tokio::test] async fn open_unixsocket_test() {