Skip to content

Commit

Permalink
simplify disk os-specific code
Browse files Browse the repository at this point in the history
  • Loading branch information
ClementTsang committed Jun 11, 2023
1 parent ac33f7a commit bd55bd2
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 37 deletions.
15 changes: 1 addition & 14 deletions src/app/data_harvester.rs
Original file line number Diff line number Diff line change
Expand Up @@ -407,20 +407,7 @@ impl DataCollector {
#[inline]
fn update_disks(&mut self) {
if self.widgets_to_harvest.use_disk {
cfg_if::cfg_if! {
if #[cfg(any(target_os = "freebsd", target_os = "linux", target_os = "macos"))] {
let disk_filter = &self.filters.disk_filter;
let mount_filter = &self.filters.mount_filter;
self.data.disks = disks::get_disk_usage(disk_filter, mount_filter).ok();
} else {
self.data.disks = Some(disks::get_disk_usage(
&self.sys,
&self.filters.disk_filter,
&self.filters.mount_filter,
));
}
}

self.data.disks = disks::get_disk_usage(self).ok();
self.data.io = disks::get_io_usage().ok();
}
}
Expand Down
9 changes: 5 additions & 4 deletions src/app/data_harvester/disks/freebsd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ use std::io;
use serde::Deserialize;

use super::{keep_disk_entry, DiskHarvest, IoHarvest};
use crate::{app::Filter, data_harvester::deserialize_xo, utils::error};

use crate::{app::data_harvester::DataCollector, data_harvester::deserialize_xo, utils::error};

#[derive(Deserialize, Debug, Default)]
#[serde(rename_all = "kebab-case")]
Expand Down Expand Up @@ -35,9 +36,9 @@ pub fn get_io_usage() -> error::Result<IoHarvest> {
Ok(io_harvest)
}

pub fn get_disk_usage(
disk_filter: &Option<Filter>, mount_filter: &Option<Filter>,
) -> error::Result<Vec<DiskHarvest>> {
pub fn get_disk_usage(collector: &DataCollector) -> error::Result<Vec<DiskHarvest>> {
let disk_filter = &collector.filters.disk_filter;
let mount_filter = &collector.filters.mount_filter;
let vec_disks: Vec<DiskHarvest> = get_disk_info().map(|storage_system_information| {
storage_system_information
.filesystem
Expand Down
15 changes: 8 additions & 7 deletions src/app/data_harvester/disks/other.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

use sysinfo::{DiskExt, System, SystemExt};

use crate::app::filter::Filter;
use crate::app::data_harvester::DataCollector;

use super::{keep_disk_entry, DiskHarvest};

pub(crate) fn get_disk_usage(
sys: &System, disk_filter: &Option<Filter>, mount_filter: &Option<Filter>,
) -> Vec<DiskHarvest> {
let disks = sys.disks();
disks
pub(crate) fn get_disk_usage(collector: &DataCollector) -> anyhow::Result<Vec<DiskHarvest>> {
let disks = collector.sys.disks();
let disk_filter = &collector.filters.disk_filter;
let mount_filter = &collector.filters.mount_filter;

Ok(disks
.iter()
.filter_map(|disk| {
let name = {
Expand Down Expand Up @@ -48,5 +49,5 @@ pub(crate) fn get_disk_usage(
None
}
})
.collect()
.collect())
}
8 changes: 4 additions & 4 deletions src/app/data_harvester/disks/unix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ cfg_if::cfg_if! {
}

use super::{keep_disk_entry, DiskHarvest};
use crate::app::Filter;
use crate::app::data_harvester::DataCollector;

/// Returns the disk usage of the mounted (and for now, physical) disks.
pub fn get_disk_usage(
disk_filter: &Option<Filter>, mount_filter: &Option<Filter>,
) -> anyhow::Result<Vec<DiskHarvest>> {
pub fn get_disk_usage(collector: &DataCollector) -> anyhow::Result<Vec<DiskHarvest>> {
let disk_filter = &collector.filters.disk_filter;
let mount_filter = &collector.filters.mount_filter;
let mut vec_disks: Vec<DiskHarvest> = Vec::new();

for partition in physical_partitions()? {
Expand Down
17 changes: 9 additions & 8 deletions src/app/data_harvester/disks/windows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ use itertools::Itertools;
use sysinfo::{DiskExt, System, SystemExt};

use super::{keep_disk_entry, DiskHarvest};
use crate::app::data_harvester::disks::IoCounters;
use crate::app::filter::Filter;

use crate::app::data_harvester::{disks::IoCounters, DataCollector};

mod bindings;
use bindings::*;
Expand All @@ -26,11 +26,12 @@ pub(crate) fn io_stats() -> anyhow::Result<Vec<anyhow::Result<IoCounters>>> {
.collect::<Vec<_>>())
}

pub(crate) fn get_disk_usage(
sys: &System, disk_filter: &Option<Filter>, mount_filter: &Option<Filter>,
) -> Vec<DiskHarvest> {
let disks = sys.disks();
disks
pub(crate) fn get_disk_usage(collector: &DataCollector) -> anyhow::Result<Vec<DiskHarvest>> {
let disks = collector.sys.disks();
let disk_filter = &collector.filters.disk_filter;
let mount_filter = &collector.filters.mount_filter;

Ok(disks
.iter()
.filter_map(|disk| {
let name = {
Expand Down Expand Up @@ -71,5 +72,5 @@ pub(crate) fn get_disk_usage(
None
}
})
.collect()
.collect())
}

0 comments on commit bd55bd2

Please sign in to comment.