Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55e68189d3 |
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nanometrics-agent"
|
name = "nanometrics-agent"
|
||||||
version = "0.1.9"
|
version = "0.1.10"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
|||||||
@@ -92,12 +92,15 @@ pub fn collect() -> Option<Vec<crate::payload::SmartMetrics>> {
|
|||||||
.filter_map(|n| {
|
.filter_map(|n| {
|
||||||
if n.starts_with("sd") {
|
if n.starts_with("sd") {
|
||||||
Some(format!("/dev/{}", n))
|
Some(format!("/dev/{}", n))
|
||||||
} else if n.starts_with("nvme") && !n.contains('n') {
|
} else if n.starts_with("nvme") {
|
||||||
// /sys/block contient nvme0n1 (namespace) — on utilise le contrôleur nvme0
|
// /sys/block a nvme0n1 (namespace) → extraire le contrôleur nvme0
|
||||||
Some(format!("/dev/{}", n))
|
// rfind('n') trouve le dernier 'n' séparateur namespace, ex: nvme0[n]1
|
||||||
} else if n.starts_with("nvme") && n.contains('n') {
|
let ctrl = if let Some(pos) = n.rfind('n')
|
||||||
// Déduit le contrôleur depuis nvme0n1 → nvme0
|
.filter(|&p| p >= 5 && n[p+1..].chars().all(|c| c.is_ascii_digit())) {
|
||||||
let ctrl = n.split('n').next()?;
|
&n[..pos]
|
||||||
|
} else {
|
||||||
|
&n // déjà un nom de contrôleur (rare)
|
||||||
|
};
|
||||||
Some(format!("/dev/{}", ctrl))
|
Some(format!("/dev/{}", ctrl))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Reference in New Issue
Block a user