src/tools/disks/smart.rs - get_smart_data: use &Disk instead of &str
So that we can query other device infos easily (model, vendor, ..)
This commit is contained in:
		| @ -1,4 +1,4 @@ | ||||
| use anyhow::{format_err, Error}; | ||||
| use anyhow::{bail, format_err, Error}; | ||||
| use ::serde::{Deserialize, Serialize}; | ||||
|  | ||||
| use proxmox::api::api; | ||||
| @ -72,7 +72,7 @@ pub struct SmartData { | ||||
|  | ||||
| /// Read smartctl data for a disk (/dev/XXX). | ||||
| pub fn get_smart_data( | ||||
|     disk: &str, | ||||
|     disk: &super::Disk, | ||||
|     health_only: bool, | ||||
| ) -> Result<SmartData, Error> { | ||||
|  | ||||
| @ -81,7 +81,12 @@ pub fn get_smart_data( | ||||
|     let mut command = std::process::Command::new(SMARTCTL_BIN_PATH); | ||||
|     command.arg("-H"); | ||||
|     if !health_only { command.args(&["-A", "-j"]); } | ||||
|     command.arg(disk); | ||||
|  | ||||
|     let disk_path = match disk.device_path() { | ||||
|         Some(path) => path, | ||||
|         None => bail!("disk {:?} has no node in /dev", disk.syspath()), | ||||
|     }; | ||||
|     command.arg(disk_path); | ||||
|  | ||||
|     let output = command.output() | ||||
|         .map_err(|err| format_err!("failed to execute '{}' - {}", SMARTCTL_BIN_PATH, err))?; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user