lint fix and refactor

migrate
prplV 2025-06-04 15:53:47 +03:00
parent c59ac23997
commit 99b1d14dba
6 changed files with 10 additions and 44 deletions

View File

@ -1,6 +1,7 @@
use thiserror::Error; use thiserror::Error;
#[derive(Debug, Error)] #[derive(Debug, Error)]
#[allow(dead_code)]
pub enum NoxisCliError { pub enum NoxisCliError {
#[error("Can't find socket `{0}`. {1}")] #[error("Can't find socket `{0}`. {1}")]
NoxisDaemonMissing(String, String), NoxisDaemonMissing(String, String),

View File

@ -4,14 +4,15 @@ use anyhow::Result;
use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::io::{AsyncReadExt, AsyncWriteExt};
use tokio::net::UnixStream; use tokio::net::UnixStream;
#[allow(dead_code)]
async fn create_us_stream(cli: &Cli) -> Result<UnixStream> { async fn create_us_stream(cli: &Cli) -> Result<UnixStream> {
Ok(UnixStream::connect(&cli.socket).await.map_err(|er| { Ok(UnixStream::connect(&cli.socket).await.map_err(|er| {
NoxisCliError::NoxisDaemonMissing((&cli.socket).to_string(), er.to_string()) NoxisCliError::NoxisDaemonMissing((&cli.socket).to_string(), er.to_string())
})?) })?)
} }
#[allow(dead_code)]
pub async fn try_send(cli: Cli) -> Result<()> { pub async fn try_send(cli: Cli) -> Result<()> {
// let stream = create_us_stream(&cli).await;
let mut stream = create_us_stream(&cli).await?; let mut stream = create_us_stream(&cli).await?;
let msg = serde_json::to_vec(&cli).map_err(|_| NoxisCliError::ToStringCliParsingParsing)?; let msg = serde_json::to_vec(&cli).map_err(|_| NoxisCliError::ToStringCliParsingParsing)?;

View File

@ -10,7 +10,7 @@ pub mod bus {
use std::fmt::Debug; use std::fmt::Debug;
use super::*; use super::*;
use crate::utils::metrics::processes::{ProcessesAll, ProcessesGeneral, ProcessesQuery}; use crate::utils::metrics::processes::ProcessesQuery;
use crate::utils::metrics::MetricsExportable; use crate::utils::metrics::MetricsExportable;
use noxis_cli::{metrics_models::MetricsMode, Cli}; use noxis_cli::{metrics_models::MetricsMode, Cli};
pub type BusMessageContent = Box<dyn BusContent>; pub type BusMessageContent = Box<dyn BusContent>;

View File

@ -2,7 +2,7 @@ use std::sync::Arc;
use crate::options::structs::bus::{BusMessage, BusMessageDirection}; use crate::options::structs::bus::{BusMessage, BusMessageDirection};
use crate::options::structs::ProcessUnit; use crate::options::structs::ProcessUnit;
use log::{debug, error, trace}; use log::{error, trace};
use tokio::sync::mpsc::{Receiver, Sender}; use tokio::sync::mpsc::{Receiver, Sender};
type Inner = Receiver<BusMessage>; type Inner = Receiver<BusMessage>;

View File

@ -1,18 +1,16 @@
// submodule needed to get metrics such as ///! Submodule needed to get metrics such as
// cpu load, ram/rom load and net activity ///! cpu load, ram/rom load and net activity
use crate::{ use crate::{
options::structs::{ProcessState, TrackingProcess}, options::structs::ProcessState,
utils::metrics::processes::{ProcessesAll, ProcessesGeneral, ProcessesQuery}, utils::metrics::processes::{ProcessesGeneral, ProcessesQuery},
}; };
use futures::lock::Mutex;
use log::warn; use log::warn;
use noxis_cli::metrics_models::MetricsMode; use noxis_cli::metrics_models::MetricsMode;
use std::{any::Any, collections::BTreeMap, sync::Arc}; use std::{any::Any, collections::BTreeMap, sync::Arc};
// use chrono::Duration; // use chrono::Duration;
use super::prcs::v2::Pid; use super::prcs::v2::Pid;
use crate::options::structs::bus::{BusMessage, BusMessageContentType, BusMessageDirection}; use crate::options::structs::bus::{BusMessage, BusMessageContentType, BusMessageDirection};
use crate::options::structs::Dependencies;
use serde::Serialize; use serde::Serialize;
use std::fmt::Debug; use std::fmt::Debug;
use sysinfo::{Disks as DisksList, Networks, System}; use sysinfo::{Disks as DisksList, Networks, System};
@ -113,7 +111,6 @@ pub async fn init_metrics_grubber(
} }
} }
} else if let Ok(BusMessage::Response(_, _, cont)) = msg { } else if let Ok(BusMessage::Response(_, _, cont)) = msg {
dbg!(&cont);
let cont: Box<dyn Any + Send> = cont; let cont: Box<dyn Any + Send> = cont;
if let Ok(info) = cont.downcast::<ProcessesQuery>() { if let Ok(info) = cont.downcast::<ProcessesQuery>() {
if let ProcessesQuery::All(info) = *info { if let ProcessesQuery::All(info) = *info {
@ -293,9 +290,6 @@ async fn get_all_ifaces_metrics(networks: &Networks) -> Ifaces {
ifaces ifaces
} }
async fn get_all_processes_metrics(system: &mut System) { /* TODO */
}
pub mod processes { pub mod processes {
use crate::options::structs::ProcessState; use crate::options::structs::ProcessState;
use crate::utils::prcs::v2::Pid; use crate::utils::prcs::v2::Pid;
@ -308,17 +302,6 @@ pub mod processes {
QueryAll, QueryAll,
} }
impl ProcessesQuery {
pub fn serialze_to_bus(&self) -> Option<String> {
match self {
ProcessesQuery::General(prc) => serde_json::to_string_pretty(prc).ok(),
ProcessesQuery::All(prc) => serde_json::to_string_pretty(prc).ok(),
ProcessesQuery::QueryGeneral => None,
ProcessesQuery::QueryAll => None,
}
}
}
#[derive(Debug, serde::Serialize)] #[derive(Debug, serde::Serialize)]
pub struct ProcessesGeneral { pub struct ProcessesGeneral {
pub name: String, pub name: String,
@ -361,16 +344,6 @@ pub mod processes {
} }
} }
pub enum MetricType {
FullMetrics,
HostInfo,
Cpu,
Ram,
Disks,
Ifaces,
Processes,
}
pub trait MetricsExportable: Send + Sync + 'static + Debug + Any { pub trait MetricsExportable: Send + Sync + 'static + Debug + Any {
fn serialze_into_output(&self) -> anyhow::Result<String>; fn serialze_into_output(&self) -> anyhow::Result<String>;
} }
@ -532,15 +505,6 @@ pub struct ProcessExtended {
} }
impl ProcessExtended { impl ProcessExtended {
fn add_metrics(&mut self, system: &mut System) {
if let Some(prc) = system.process(self.pid.new_sysinfo_pid()) {
self.cpu_usage = prc.cpu_usage() / system.cpus().len() as f32;
self.ram_usage = system.total_memory() / prc.memory();
self.disks_usage_read_bytes = prc.disk_usage().total_read_bytes;
self.disks_usage_write_bytes = prc.disk_usage().total_written_bytes;
self.virtual_mem_usage = prc.virtual_memory();
}
}
pub fn from_process_query_all(system: &mut System, proc: processes::ProcessesAll) -> Self { pub fn from_process_query_all(system: &mut System, proc: processes::ProcessesAll) -> Self {
system.refresh_processes(sysinfo::ProcessesToUpdate::All, true); system.refresh_processes(sysinfo::ProcessesToUpdate::All, true);
return if let Some(prc) = system.process(proc.pid.new_sysinfo_pid()) { return if let Some(prc) = system.process(proc.pid.new_sysinfo_pid()) {

View File

@ -10,7 +10,7 @@ use tokio::time::Duration;
pub mod v2 { pub mod v2 {
use crate::options::structs::DependencyType; use crate::options::structs::DependencyType;
use crate::utils::metrics::processes::{ProcessesAll, ProcessesGeneral, ProcessesQuery}; use crate::utils::metrics::processes::ProcessesGeneral;
use log::info; use log::info;
use std::path::Path; use std::path::Path;
use tokio::time::sleep; use tokio::time::sleep;