Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ee5e8710a3 | |||
| d715b452c1 |
Generated
+1
-1
@@ -248,7 +248,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nanometrics-agent"
|
||||
version = "0.1.12"
|
||||
version = "0.1.14"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"rumqttc",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "nanometrics-agent"
|
||||
version = "0.1.12"
|
||||
version = "0.1.14"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
|
||||
@@ -9,10 +9,16 @@ struct SmartJson {
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct SmartStatus { passed: bool }
|
||||
struct SmartStatus {
|
||||
#[serde(default)]
|
||||
passed: bool,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct SmartTemp { current: i64 }
|
||||
struct SmartTemp {
|
||||
#[serde(default)]
|
||||
current: Option<i64>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct SmartAttrs { table: Vec<SmartAttr> }
|
||||
@@ -44,7 +50,7 @@ pub fn is_available() -> bool {
|
||||
pub fn parse_json(json: &str) -> Result<crate::payload::SmartMetrics, serde_json::Error> {
|
||||
let s: SmartJson = serde_json::from_str(json)?;
|
||||
|
||||
let temperature = s.temperature.as_ref().map(|t| t.current)
|
||||
let temperature = s.temperature.as_ref().and_then(|t| t.current)
|
||||
.or_else(|| s.nvme_smart_health_information_log.as_ref()?.temperature);
|
||||
|
||||
let mut reallocated = None;
|
||||
@@ -93,7 +99,8 @@ pub fn collect() -> Option<Vec<crate::payload::SmartMetrics>> {
|
||||
.filter_map(|n| {
|
||||
if n.starts_with("sd") {
|
||||
Some(format!("/dev/{}", n))
|
||||
} else if n.starts_with("nvme") && n.contains('n') {
|
||||
} else if n.starts_with("nvme") && n[4..].contains('n') {
|
||||
// nvme0n1, nvme1n1 — namespace block device ; "nvme0" (contrôleur) ne passerait pas
|
||||
Some(format!("/dev/{}", n))
|
||||
} else {
|
||||
None
|
||||
|
||||
Reference in New Issue
Block a user