From ee5e8710a3cbce3110f8166d388aabb5e0485043 Mon Sep 17 00:00:00 2001 From: Gilles Soulier Date: Sat, 23 May 2026 13:20:04 +0200 Subject: [PATCH] =?UTF-8?q?fix(smart=20v0.1.14):=20filtre=20NVMe=20correct?= =?UTF-8?q?=20+=20SmartStatus=20d=C3=A9fensif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Filtre nvme : n[4..].contains('n') au lieu de n.contains('n') pour distinguer nvme0n1 (namespace) de nvme0 (contrôleur) - SmartStatus.passed : #[serde(default)] pour éviter crash si absent Co-Authored-By: Claude Sonnet 4.6 --- agent/Cargo.lock | 2 +- agent/Cargo.toml | 2 +- agent/src/metrics/smart.rs | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/agent/Cargo.lock b/agent/Cargo.lock index de21580..eb886d3 100644 --- a/agent/Cargo.lock +++ b/agent/Cargo.lock @@ -248,7 +248,7 @@ dependencies = [ [[package]] name = "nanometrics-agent" -version = "0.1.13" +version = "0.1.14" dependencies = [ "libc", "rumqttc", diff --git a/agent/Cargo.toml b/agent/Cargo.toml index 4fd6e1a..ce5761d 100644 --- a/agent/Cargo.toml +++ b/agent/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nanometrics-agent" -version = "0.1.13" +version = "0.1.14" edition = "2021" [lib] diff --git a/agent/src/metrics/smart.rs b/agent/src/metrics/smart.rs index e994789..e116131 100644 --- a/agent/src/metrics/smart.rs +++ b/agent/src/metrics/smart.rs @@ -9,7 +9,10 @@ struct SmartJson { } #[derive(Deserialize)] -struct SmartStatus { passed: bool } +struct SmartStatus { + #[serde(default)] + passed: bool, +} #[derive(Deserialize)] struct SmartTemp { @@ -96,7 +99,8 @@ pub fn collect() -> Option> { .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