* [pve-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field
@ 2022-07-21 10:45 ` Matthias Heiserer
0 siblings, 0 replies; 14+ messages in thread
From: Matthias Heiserer @ 2022-07-21 10:45 UTC (permalink / raw)
To: pve-devel, pbs-devel
This makes it consistent with the naming scheme in PVE/GUI.
Keep value for API stability reasons, and remove it in next major version.
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
---
src/tools/disks/smart.rs | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/tools/disks/smart.rs b/src/tools/disks/smart.rs
index 3738cdfd..787971e9 100644
--- a/src/tools/disks/smart.rs
+++ b/src/tools/disks/smart.rs
@@ -25,8 +25,11 @@ pub enum SmartStatus {
pub struct SmartAttribute {
/// Attribute name
name: String,
- /// Attribute raw value
+ // fixme remove value in major release
+ /// duplicate of raw - kept for API stability
value: String,
+ /// Attribute raw value
+ raw: String,
// the rest of the values is available for ATA type
/// ATA Attribute ID
#[serde(skip_serializing_if = "Option::is_none")]
@@ -146,7 +149,8 @@ pub fn get_smart_data(disk: &super::Disk, health_only: bool) -> Result<SmartData
attributes.push(SmartAttribute {
name,
- value: raw_value,
+ value: raw_value.clone(),
+ raw: raw_value,
id: Some(id),
flags: Some(flags),
normalized: Some(normalized),
@@ -180,6 +184,7 @@ pub fn get_smart_data(disk: &super::Disk, health_only: bool) -> Result<SmartData
attributes.push(SmartAttribute {
name: name.to_string(),
value: value.to_string(),
+ raw: value.to_string(),
id: None,
flags: None,
normalized: None,
--
2.30.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pbs-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field
@ 2022-07-21 10:45 ` Matthias Heiserer
0 siblings, 0 replies; 14+ messages in thread
From: Matthias Heiserer @ 2022-07-21 10:45 UTC (permalink / raw)
To: pve-devel, pbs-devel
This makes it consistent with the naming scheme in PVE/GUI.
Keep value for API stability reasons, and remove it in next major version.
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
---
src/tools/disks/smart.rs | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/tools/disks/smart.rs b/src/tools/disks/smart.rs
index 3738cdfd..787971e9 100644
--- a/src/tools/disks/smart.rs
+++ b/src/tools/disks/smart.rs
@@ -25,8 +25,11 @@ pub enum SmartStatus {
pub struct SmartAttribute {
/// Attribute name
name: String,
- /// Attribute raw value
+ // fixme remove value in major release
+ /// duplicate of raw - kept for API stability
value: String,
+ /// Attribute raw value
+ raw: String,
// the rest of the values is available for ATA type
/// ATA Attribute ID
#[serde(skip_serializing_if = "Option::is_none")]
@@ -146,7 +149,8 @@ pub fn get_smart_data(disk: &super::Disk, health_only: bool) -> Result<SmartData
attributes.push(SmartAttribute {
name,
- value: raw_value,
+ value: raw_value.clone(),
+ raw: raw_value,
id: Some(id),
flags: Some(flags),
normalized: Some(normalized),
@@ -180,6 +184,7 @@ pub fn get_smart_data(disk: &super::Disk, health_only: bool) -> Result<SmartData
attributes.push(SmartAttribute {
name: name.to_string(),
value: value.to_string(),
+ raw: value.to_string(),
id: None,
flags: None,
normalized: None,
--
2.30.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pve-devel] [PATCH pve-storage] fix #4165: disk: SMART: add normalized field
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
@ 2022-07-21 10:45 ` Matthias Heiserer
-1 siblings, 0 replies; 14+ messages in thread
From: Matthias Heiserer @ 2022-07-21 10:45 UTC (permalink / raw)
To: pve-devel, pbs-devel
This makes it consistent with the naming scheme in PBS/GUI.
Keep value for API stability reasons and remove it in the next major version.
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
---
PVE/Diskmanage.pm | 2 ++
.../hdd_smart/sda_smart_expected.json | 24 ++++++++++++++++++
.../hdd_smart/sdb_smart_expected.json | 21 ++++++++++++++++
.../ssd_smart/sda_smart_expected.json | 23 +++++++++++++++++
.../ssd_smart/sdb_smart_expected.json | 25 +++++++++++++++++++
.../ssd_smart/sdc_smart_expected.json | 1 +
.../ssd_smart/sdd_smart_expected.json | 25 +++++++++++++++++++
.../ssd_smart/sde_smart_expected.json | 24 ++++++++++++++++++
8 files changed, 145 insertions(+)
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 8ed7a8b..ec0bdf3 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -123,7 +123,9 @@ sub get_smart_data {
$entry->{name} = $2 if defined $2;
$entry->{flags} = $3 if defined $3;
# the +0 makes a number out of the strings
+ # fixme remove next line in major release, use normalized instead
$entry->{value} = $4+0 if defined $4;
+ $entry->{normalized} = $4+0 if defined $4;
$entry->{worst} = $5+0 if defined $5;
# some disks report the default threshold as --- instead of 000
if (defined($6) && $6 eq '---') {
diff --git a/test/disk_tests/hdd_smart/sda_smart_expected.json b/test/disk_tests/hdd_smart/sda_smart_expected.json
index 01bb860..73cd01c 100644
--- a/test/disk_tests/hdd_smart/sda_smart_expected.json
+++ b/test/disk_tests/hdd_smart/sda_smart_expected.json
@@ -4,6 +4,7 @@
"threshold" : 6,
"fail" : "-",
"flags" : "POSR--",
+ "normalized" : 117,
"value" : 117,
"id" : " 1",
"raw" : "158983656",
@@ -12,6 +13,7 @@
},
{
"flags" : "PO----",
+ "normalized" : 92,
"value" : 92,
"raw" : "0",
"name" : "Spin_Up_Time",
@@ -21,6 +23,7 @@
"threshold" : 0
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"id" : " 4",
@@ -31,6 +34,7 @@
"fail" : "-"
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "PO--CK",
"id" : " 5",
@@ -42,6 +46,7 @@
},
{
"flags" : "POSR--",
+ "normalized" : 75,
"value" : 75,
"raw" : "30779387",
"worst" : 60,
@@ -56,11 +61,13 @@
"name" : "Power_On_Hours",
"id" : " 9",
"flags" : "-O--CK",
+ "normalized" : 99,
"value" : 99,
"fail" : "-",
"threshold" : 0
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "PO--C-",
"id" : " 10",
@@ -72,6 +79,7 @@
},
{
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"id" : " 12",
"raw" : "190",
@@ -84,6 +92,7 @@
"threshold" : 0,
"fail" : "-",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"id" : "183",
"raw" : "0",
@@ -94,6 +103,7 @@
"fail" : "-",
"threshold" : 99,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"raw" : "0",
"worst" : 100,
@@ -105,6 +115,7 @@
"name" : "Reported_Uncorrect",
"raw" : "0",
"id" : "187",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"fail" : "-",
@@ -112,6 +123,7 @@
},
{
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"raw" : "0 0 0",
"worst" : 100,
@@ -124,6 +136,7 @@
"threshold" : 0,
"fail" : "-",
"flags" : "-O-RCK",
+ "normalized" : 100,
"value" : 100,
"id" : "189",
"raw" : "0",
@@ -135,6 +148,7 @@
"name" : "Airflow_Temperature_Cel",
"raw" : "31 (Min/Max 20/33)",
"id" : "190",
+ "normalized" : 69,
"value" : 69,
"flags" : "-O---K",
"fail" : "-",
@@ -147,6 +161,7 @@
"name" : "G-Sense_Error_Rate",
"raw" : "0",
"id" : "191",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK"
},
@@ -156,12 +171,14 @@
"name" : "Power-Off_Retract_Count",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-"
},
{
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"raw" : "201",
"worst" : 100,
@@ -173,6 +190,7 @@
{
"fail" : "-",
"threshold" : 0,
+ "normalized" : 31,
"value" : 31,
"flags" : "-O---K",
"name" : "Temperature_Celsius",
@@ -181,6 +199,7 @@
"id" : "194"
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--C-",
"id" : "197",
@@ -195,6 +214,7 @@
"name" : "Offline_Uncorrectable",
"raw" : "0",
"id" : "198",
+ "normalized" : 100,
"value" : 100,
"flags" : "----C-",
"fail" : "-",
@@ -203,6 +223,7 @@
{
"threshold" : 0,
"fail" : "-",
+ "normalized" : 200,
"value" : 200,
"flags" : "-OSRCK",
"id" : "199",
@@ -216,6 +237,7 @@
"worst" : 253,
"id" : "240",
"flags" : "------",
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"threshold" : 0
@@ -227,11 +249,13 @@
"worst" : 253,
"raw" : "24013587236",
"id" : "241",
+ "normalized" : 100,
"value" : 100,
"flags" : "------"
},
{
"flags" : "------",
+ "normalized" : 100,
"value" : 100,
"id" : "242",
"raw" : "66916845706732",
diff --git a/test/disk_tests/hdd_smart/sdb_smart_expected.json b/test/disk_tests/hdd_smart/sdb_smart_expected.json
index 41e55fb..ae0f014 100644
--- a/test/disk_tests/hdd_smart/sdb_smart_expected.json
+++ b/test/disk_tests/hdd_smart/sdb_smart_expected.json
@@ -7,11 +7,13 @@
"name" : "Raw_Read_Error_Rate",
"worst" : 63,
"raw" : "215697022",
+ "normalized" : 83,
"value" : 83,
"flags" : "POSR--"
},
{
"flags" : "PO----",
+ "normalized" : 92,
"value" : 92,
"id" : " 3",
"raw" : "0",
@@ -23,6 +25,7 @@
{
"fail" : "-",
"threshold" : 20,
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"worst" : 100,
@@ -32,6 +35,7 @@
},
{
"flags" : "PO--CK",
+ "normalized" : 100,
"value" : 100,
"id" : " 5",
"raw" : "0",
@@ -46,6 +50,7 @@
"name" : "Seek_Error_Rate",
"worst" : 60,
"flags" : "POSR--",
+ "normalized" : 91,
"value" : 91,
"threshold" : 30,
"fail" : "-"
@@ -56,6 +61,7 @@
"worst" : 89,
"id" : " 9",
"flags" : "-O--CK",
+ "normalized" : 89,
"value" : 89,
"fail" : "-",
"threshold" : 0
@@ -63,6 +69,7 @@
{
"fail" : "-",
"threshold" : 97,
+ "normalized" : 100,
"value" : 100,
"flags" : "PO--C-",
"worst" : 100,
@@ -78,6 +85,7 @@
"name" : "Power_Cycle_Count",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
@@ -85,6 +93,7 @@
"worst" : 100,
"raw" : "0",
"id" : "184",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"fail" : "-",
@@ -98,6 +107,7 @@
"name" : "Reported_Uncorrect",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
@@ -108,6 +118,7 @@
"name" : "Command_Timeout",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
@@ -118,10 +129,12 @@
"name" : "High_Fly_Writes",
"id" : "189",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
"flags" : "-O-RCK",
+ "normalized" : 45,
"value" : 45,
"raw" : "55 (147 229 55 24 0)",
"worst" : 36,
@@ -138,6 +151,7 @@
"name" : "G-Sense_Error_Rate",
"id" : "191",
"flags" : "-O---K",
+ "normalized" : 100,
"value" : 100
},
{
@@ -148,11 +162,13 @@
"worst" : 100,
"name" : "Power-Off_Retract_Count",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
"fail" : "-",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"name" : "Load_Cycle_Count",
@@ -164,6 +180,7 @@
"threshold" : 0,
"fail" : "-",
"flags" : "-O--CK",
+ "normalized" : 55,
"value" : 55,
"id" : "194",
"raw" : "55 (0 16 0 0 0)",
@@ -177,6 +194,7 @@
"name" : "Hardware_ECC_Recovered",
"worst" : 13,
"raw" : "215697022",
+ "normalized" : 23,
"value" : 23,
"flags" : "-O---K"
},
@@ -185,6 +203,7 @@
"name" : "Current_Pending_Sector",
"raw" : "0",
"id" : "197",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--C-",
"fail" : "-",
@@ -195,6 +214,7 @@
"name" : "Offline_Uncorrectable",
"raw" : "0",
"id" : "198",
+ "normalized" : 100,
"value" : 100,
"flags" : "----C-",
"fail" : "-",
@@ -203,6 +223,7 @@
{
"fail" : "-",
"threshold" : 0,
+ "normalized" : 200,
"value" : 200,
"flags" : "-OSRCK",
"worst" : 200,
diff --git a/test/disk_tests/ssd_smart/sda_smart_expected.json b/test/disk_tests/ssd_smart/sda_smart_expected.json
index a71fab2..2b42cf8 100644
--- a/test/disk_tests/ssd_smart/sda_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sda_smart_expected.json
@@ -10,6 +10,7 @@
"flags" : "POSR-K",
"raw" : "0",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
@@ -20,12 +21,14 @@
"flags" : "-O--CK",
"raw" : "0",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
"name" : "Power_On_Hours",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "1309",
@@ -40,9 +43,11 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : " 12",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"raw" : "0",
"flags" : "-O--CK",
@@ -53,6 +58,7 @@
"worst" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "172",
"raw" : "0",
@@ -70,12 +76,14 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : "173",
+ "normalized" : 100,
"value" : 100
},
{
"name" : "Unexpect_Power_Loss_Ct",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "53",
@@ -87,6 +95,7 @@
"flags" : "PO--CK",
"fail" : "-",
"id" : "180",
+ "normalized" : 0,
"value" : 0,
"threshold" : 0,
"name" : "Unused_Reserve_NAND_Blk",
@@ -100,6 +109,7 @@
"raw" : "0",
"flags" : "-O--CK",
"id" : "183",
+ "normalized" : 100,
"value" : 100
},
{
@@ -110,12 +120,14 @@
"flags" : "-O--CK",
"raw" : "0",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
"name" : "Reported_Uncorrect",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"flags" : "-O--CK",
@@ -130,6 +142,7 @@
"fail" : "-",
"flags" : "-O---K",
"raw" : "32 (Min/Max 22/46)",
+ "normalized" : 68,
"value" : 68
},
{
@@ -137,6 +150,7 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : "196",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"name" : "Reallocated_Event_Count",
@@ -147,6 +161,7 @@
"fail" : "-",
"flags" : "-O--CK",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"worst" : 100,
"name" : "Current_Pending_Sector",
@@ -160,6 +175,7 @@
"raw" : "0",
"fail" : "-",
"id" : "198",
+ "normalized" : 100,
"value" : 100
},
{
@@ -170,9 +186,11 @@
"fail" : "-",
"raw" : "0",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "202",
"flags" : "----CK",
@@ -186,6 +204,7 @@
"name" : "Write_Error_Rate",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "0",
@@ -200,9 +219,11 @@
"raw" : "0",
"flags" : "-O--CK",
"id" : "210",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "246",
"fail" : "-",
@@ -220,9 +241,11 @@
"raw" : "211228065",
"flags" : "-O--CK",
"id" : "247",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "253276904",
diff --git a/test/disk_tests/ssd_smart/sdb_smart_expected.json b/test/disk_tests/ssd_smart/sdb_smart_expected.json
index 6f55c3e..0614754 100644
--- a/test/disk_tests/ssd_smart/sdb_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sdb_smart_expected.json
@@ -10,6 +10,7 @@
"flags" : "-O--CK",
"raw" : "0",
"id" : " 5",
+ "normalized" : 100,
"value" : 100
},
{
@@ -20,9 +21,11 @@
"fail" : "-",
"raw" : "1259",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : " 12",
"raw" : "191",
@@ -37,6 +40,7 @@
"raw" : "0",
"flags" : "PO--CK",
"fail" : "-",
+ "normalized" : 100,
"value" : 100,
"worst" : 100,
"threshold" : 10,
@@ -46,6 +50,7 @@
"threshold" : 0,
"name" : "Program_Fail_Count",
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"raw" : "0",
"flags" : "-O--CK",
@@ -60,12 +65,14 @@
"fail" : "-",
"flags" : "-O--CK",
"raw" : "0",
+ "normalized" : 100,
"value" : 100
},
{
"worst" : 100,
"threshold" : 0,
"name" : "Unsafe_Shutdown_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "174",
"raw" : "164",
@@ -73,6 +80,7 @@
"fail" : "-"
},
{
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"flags" : "PO--CK",
@@ -86,6 +94,7 @@
"worst" : 100,
"threshold" : 0,
"name" : "SATA_Downshift_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "183",
"raw" : "0",
@@ -96,6 +105,7 @@
"worst" : 100,
"name" : "End-to-End_Error",
"threshold" : 90,
+ "normalized" : 100,
"value" : 100,
"id" : "184",
"fail" : "-",
@@ -106,6 +116,7 @@
"worst" : 100,
"name" : "Reported_Uncorrect",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"id" : "187",
"fail" : "-",
@@ -120,12 +131,14 @@
"fail" : "-",
"raw" : "28 (Min/Max 21/30)",
"flags" : "-O---K",
+ "normalized" : 72,
"value" : 72
},
{
"worst" : 100,
"threshold" : 0,
"name" : "Unsafe_Shutdown_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "192",
"raw" : "164",
@@ -137,6 +150,7 @@
"fail" : "-",
"raw" : "28",
"flags" : "-O---K",
+ "normalized" : 100,
"value" : 100,
"worst" : 100,
"name" : "Temperature_Internal",
@@ -146,6 +160,7 @@
"worst" : 100,
"threshold" : 0,
"name" : "Current_Pending_Sector",
+ "normalized" : 100,
"value" : 100,
"id" : "197",
"raw" : "0",
@@ -156,6 +171,7 @@
"worst" : 100,
"threshold" : 0,
"name" : "CRC_Error_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "199",
"flags" : "-OSRCK",
@@ -170,9 +186,11 @@
"fail" : "-",
"flags" : "-O--CK",
"raw" : "296600",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "226",
"raw" : "3747",
@@ -190,6 +208,7 @@
"raw" : "0",
"flags" : "-O--CK",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
@@ -200,6 +219,7 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : "228",
+ "normalized" : 100,
"value" : 100
},
{
@@ -207,12 +227,14 @@
"raw" : "0",
"flags" : "PO--CK",
"id" : "232",
+ "normalized" : 100,
"value" : 100,
"name" : "Available_Reservd_Space",
"threshold" : 10,
"worst" : 100
},
{
+ "normalized" : 97,
"value" : 97,
"fail" : "-",
"flags" : "-O--CK",
@@ -223,6 +245,7 @@
"worst" : 97
},
{
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "0/0",
@@ -240,9 +263,11 @@
"fail" : "-",
"raw" : "296600",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "242",
"fail" : "-",
diff --git a/test/disk_tests/ssd_smart/sdc_smart_expected.json b/test/disk_tests/ssd_smart/sdc_smart_expected.json
index f0cffcf..fad095b 100644
--- a/test/disk_tests/ssd_smart/sdc_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sdc_smart_expected.json
@@ -3,6 +3,7 @@
"health" : "PASSED",
"attributes" : [
{
+ "normalized" : 99,
"value" : 99,
"fail" : "-",
"raw" : "34",
diff --git a/test/disk_tests/ssd_smart/sdd_smart_expected.json b/test/disk_tests/ssd_smart/sdd_smart_expected.json
index a85e7d7..8e0bebf 100644
--- a/test/disk_tests/ssd_smart/sdd_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sdd_smart_expected.json
@@ -7,6 +7,7 @@
"worst" : 100,
"raw" : "0",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"name" : "Reallocated_Sector_Ct"
},
@@ -17,6 +18,7 @@
"id" : " 9",
"name" : "Power_On_Hours",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "799"
},
@@ -24,6 +26,7 @@
"name" : "Power_Cycle_Count",
"raw" : "92",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"worst" : 100,
@@ -37,10 +40,12 @@
"id" : "165",
"name" : "Unknown_Attribute",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "9699447"
},
{
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "1",
@@ -56,6 +61,7 @@
"fail" : "-",
"worst" : 100,
"raw" : "46",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"name" : "Unknown_Attribute"
@@ -63,6 +69,7 @@
{
"name" : "Unknown_Attribute",
"raw" : "5",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-",
@@ -75,6 +82,7 @@
"id" : "169",
"worst" : 100,
"fail" : "-",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "1079",
@@ -83,6 +91,7 @@
{
"raw" : "0",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"name" : "Unknown_Attribute",
"id" : "170",
@@ -97,12 +106,14 @@
"flags" : "-O--CK",
"name" : "Unknown_Attribute",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0
},
{
"name" : "Unknown_Attribute",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-",
@@ -113,6 +124,7 @@
{
"name" : "Unknown_Attribute",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "1",
"worst" : 100,
@@ -122,6 +134,7 @@
},
{
"name" : "Unknown_Attribute",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "22",
@@ -136,12 +149,14 @@
"flags" : "-O--CK",
"id" : "184",
"name" : "End-to-End_Error",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "0"
},
{
"name" : "Reported_Uncorrect",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "0",
@@ -153,6 +168,7 @@
{
"name" : "Command_Timeout",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-",
@@ -162,6 +178,7 @@
},
{
"threshold" : 0,
+ "normalized" : 73,
"value" : 73,
"raw" : "27 (Min/Max 23/64)",
"name" : "Temperature_Celsius",
@@ -176,6 +193,7 @@
"flags" : "-O--CK",
"id" : "199",
"name" : "UDMA_CRC_Error_Count",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "0"
@@ -183,6 +201,7 @@
{
"name" : "Unknown_SSD_Attribute",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "146029805602",
"worst" : 100,
@@ -192,6 +211,7 @@
},
{
"raw" : "100",
+ "normalized" : 100,
"value" : 100,
"threshold" : 4,
"name" : "Available_Reservd_Space",
@@ -202,6 +222,7 @@
},
{
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "1574",
"name" : "Media_Wearout_Indicator",
@@ -216,6 +237,7 @@
"fail" : "-",
"worst" : 100,
"raw" : "2303",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"name" : "Unknown_Attribute"
@@ -227,6 +249,7 @@
"flags" : "----CK",
"name" : "Total_LBAs_Written",
"raw" : "2111",
+ "normalized" : 253,
"value" : 253,
"threshold" : 0
},
@@ -237,11 +260,13 @@
"id" : "242",
"name" : "Total_LBAs_Read",
"threshold" : 0,
+ "normalized" : 253,
"value" : 253,
"raw" : "1542"
},
{
"name" : "Unknown_Attribute",
+ "normalized" : 0,
"value" : 0,
"threshold" : 0,
"raw" : "0",
diff --git a/test/disk_tests/ssd_smart/sde_smart_expected.json b/test/disk_tests/ssd_smart/sde_smart_expected.json
index 1d45c1d..0fa1214 100644
--- a/test/disk_tests/ssd_smart/sde_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sde_smart_expected.json
@@ -9,12 +9,14 @@
"flags": "-O--CK",
"name": "Raw_Read_Error_Rate",
"threshold": 50,
+ "normalized": 120,
"value": 120,
"worst": 120
},
{
"id": " 5",
"fail": "-",
+ "normalized": 100,
"value": 100,
"worst": 100,
"threshold": 3,
@@ -28,6 +30,7 @@
"raw": "7963h+07m+54.620s",
"flags": "-O--CK",
"worst": 91,
+ "normalized": 91,
"value": 91,
"name": "Power_On_Hours_and_Msec",
"threshold": 0
@@ -38,6 +41,7 @@
"threshold": 0,
"name": "Power_Cycle_Count",
"worst": 99,
+ "normalized": 99,
"value": 99,
"flags": "-O--CK",
"raw": "1153"
@@ -46,6 +50,7 @@
"flags": "-O-R--",
"raw": "0",
"worst": 100,
+ "normalized": 100,
"value": 100,
"threshold": 0,
"name": "Program_Fail_Count",
@@ -60,6 +65,7 @@
"name": "Erase_Fail_Count",
"threshold": 0,
"worst": 100,
+ "normalized": 100,
"value": 100
},
{
@@ -67,6 +73,7 @@
"id": "174",
"raw": "113",
"flags": "----CK",
+ "normalized": 0,
"value": 0,
"worst": 0,
"threshold": 0,
@@ -75,6 +82,7 @@
{
"id": "177",
"fail": "-",
+ "normalized": 0,
"value": 0,
"worst": 0,
"name": "Wear_Range_Delta",
@@ -88,6 +96,7 @@
"threshold": 0,
"name": "Program_Fail_Count",
"worst": 100,
+ "normalized": 100,
"value": 100,
"fail": "-",
"id": "181"
@@ -95,6 +104,7 @@
{
"threshold": 0,
"name": "Erase_Fail_Count",
+ "normalized": 100,
"value": 100,
"worst": 100,
"flags": "-O--CK",
@@ -105,6 +115,7 @@
{
"flags": "-O--C-",
"raw": "0",
+ "normalized": 100,
"value": 100,
"worst": 100,
"threshold": 0,
@@ -113,6 +124,7 @@
"id": "187"
},
{
+ "normalized": 27,
"value": 27,
"worst": 49,
"name": "Airflow_Temperature_Cel",
@@ -126,6 +138,7 @@
"threshold": 0,
"name": "Temperature_Celsius",
"worst": 49,
+ "normalized": 27,
"value": 27,
"flags": "-O---K",
"raw": "27 (Min/Max 2/49)",
@@ -136,6 +149,7 @@
"id": "195",
"fail": "-",
"worst": 120,
+ "normalized": 120,
"value": 120,
"threshold": 0,
"name": "ECC_Uncorr_Error_Count",
@@ -149,10 +163,12 @@
"flags": "PO--CK",
"threshold": 3,
"name": "Reallocated_Event_Count",
+ "normalized": 100,
"value": 100,
"worst": 100
},
{
+ "normalized": 120,
"value": 120,
"worst": 120,
"threshold": 0,
@@ -165,6 +181,7 @@
{
"raw": "0/0",
"flags": "--SRC-",
+ "normalized": 120,
"value": 120,
"worst": 120,
"threshold": 0,
@@ -173,6 +190,7 @@
"id": "204"
},
{
+ "normalized": 100,
"value": 100,
"worst": 100,
"threshold": 0,
@@ -186,6 +204,7 @@
"id": "231",
"fail": "-",
"worst": 91,
+ "normalized": 91,
"value": 91,
"name": "SSD_Life_Left",
"threshold": 11,
@@ -197,12 +216,14 @@
"flags": "-O--CK",
"name": "SandForce_Internal",
"threshold": 0,
+ "normalized": 0,
"value": 0,
"worst": 0,
"fail": "-",
"id": "233"
},
{
+ "normalized": 0,
"value": 0,
"worst": 0,
"name": "SandForce_Internal",
@@ -214,6 +235,7 @@
},
{
"worst": 0,
+ "normalized": 0,
"value": 0,
"name": "Lifetime_Writes_GiB",
"threshold": 0,
@@ -225,6 +247,7 @@
{
"flags": "-O--CK",
"raw": "34599",
+ "normalized": 0,
"value": 0,
"worst": 0,
"threshold": 0,
@@ -236,6 +259,7 @@
"threshold": 10,
"name": "Unknown_Attribute",
"worst": 99,
+ "normalized": 99,
"value": 99,
"flags": "------",
"raw": "4063273",
--
2.30.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pbs-devel] [PATCH pve-storage] fix #4165: disk: SMART: add normalized field
@ 2022-07-21 10:45 ` Matthias Heiserer
0 siblings, 0 replies; 14+ messages in thread
From: Matthias Heiserer @ 2022-07-21 10:45 UTC (permalink / raw)
To: pve-devel, pbs-devel
This makes it consistent with the naming scheme in PBS/GUI.
Keep value for API stability reasons and remove it in the next major version.
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
---
PVE/Diskmanage.pm | 2 ++
.../hdd_smart/sda_smart_expected.json | 24 ++++++++++++++++++
.../hdd_smart/sdb_smart_expected.json | 21 ++++++++++++++++
.../ssd_smart/sda_smart_expected.json | 23 +++++++++++++++++
.../ssd_smart/sdb_smart_expected.json | 25 +++++++++++++++++++
.../ssd_smart/sdc_smart_expected.json | 1 +
.../ssd_smart/sdd_smart_expected.json | 25 +++++++++++++++++++
.../ssd_smart/sde_smart_expected.json | 24 ++++++++++++++++++
8 files changed, 145 insertions(+)
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 8ed7a8b..ec0bdf3 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -123,7 +123,9 @@ sub get_smart_data {
$entry->{name} = $2 if defined $2;
$entry->{flags} = $3 if defined $3;
# the +0 makes a number out of the strings
+ # fixme remove next line in major release, use normalized instead
$entry->{value} = $4+0 if defined $4;
+ $entry->{normalized} = $4+0 if defined $4;
$entry->{worst} = $5+0 if defined $5;
# some disks report the default threshold as --- instead of 000
if (defined($6) && $6 eq '---') {
diff --git a/test/disk_tests/hdd_smart/sda_smart_expected.json b/test/disk_tests/hdd_smart/sda_smart_expected.json
index 01bb860..73cd01c 100644
--- a/test/disk_tests/hdd_smart/sda_smart_expected.json
+++ b/test/disk_tests/hdd_smart/sda_smart_expected.json
@@ -4,6 +4,7 @@
"threshold" : 6,
"fail" : "-",
"flags" : "POSR--",
+ "normalized" : 117,
"value" : 117,
"id" : " 1",
"raw" : "158983656",
@@ -12,6 +13,7 @@
},
{
"flags" : "PO----",
+ "normalized" : 92,
"value" : 92,
"raw" : "0",
"name" : "Spin_Up_Time",
@@ -21,6 +23,7 @@
"threshold" : 0
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"id" : " 4",
@@ -31,6 +34,7 @@
"fail" : "-"
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "PO--CK",
"id" : " 5",
@@ -42,6 +46,7 @@
},
{
"flags" : "POSR--",
+ "normalized" : 75,
"value" : 75,
"raw" : "30779387",
"worst" : 60,
@@ -56,11 +61,13 @@
"name" : "Power_On_Hours",
"id" : " 9",
"flags" : "-O--CK",
+ "normalized" : 99,
"value" : 99,
"fail" : "-",
"threshold" : 0
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "PO--C-",
"id" : " 10",
@@ -72,6 +79,7 @@
},
{
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"id" : " 12",
"raw" : "190",
@@ -84,6 +92,7 @@
"threshold" : 0,
"fail" : "-",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"id" : "183",
"raw" : "0",
@@ -94,6 +103,7 @@
"fail" : "-",
"threshold" : 99,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"raw" : "0",
"worst" : 100,
@@ -105,6 +115,7 @@
"name" : "Reported_Uncorrect",
"raw" : "0",
"id" : "187",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"fail" : "-",
@@ -112,6 +123,7 @@
},
{
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"raw" : "0 0 0",
"worst" : 100,
@@ -124,6 +136,7 @@
"threshold" : 0,
"fail" : "-",
"flags" : "-O-RCK",
+ "normalized" : 100,
"value" : 100,
"id" : "189",
"raw" : "0",
@@ -135,6 +148,7 @@
"name" : "Airflow_Temperature_Cel",
"raw" : "31 (Min/Max 20/33)",
"id" : "190",
+ "normalized" : 69,
"value" : 69,
"flags" : "-O---K",
"fail" : "-",
@@ -147,6 +161,7 @@
"name" : "G-Sense_Error_Rate",
"raw" : "0",
"id" : "191",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK"
},
@@ -156,12 +171,14 @@
"name" : "Power-Off_Retract_Count",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-"
},
{
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100,
"raw" : "201",
"worst" : 100,
@@ -173,6 +190,7 @@
{
"fail" : "-",
"threshold" : 0,
+ "normalized" : 31,
"value" : 31,
"flags" : "-O---K",
"name" : "Temperature_Celsius",
@@ -181,6 +199,7 @@
"id" : "194"
},
{
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--C-",
"id" : "197",
@@ -195,6 +214,7 @@
"name" : "Offline_Uncorrectable",
"raw" : "0",
"id" : "198",
+ "normalized" : 100,
"value" : 100,
"flags" : "----C-",
"fail" : "-",
@@ -203,6 +223,7 @@
{
"threshold" : 0,
"fail" : "-",
+ "normalized" : 200,
"value" : 200,
"flags" : "-OSRCK",
"id" : "199",
@@ -216,6 +237,7 @@
"worst" : 253,
"id" : "240",
"flags" : "------",
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"threshold" : 0
@@ -227,11 +249,13 @@
"worst" : 253,
"raw" : "24013587236",
"id" : "241",
+ "normalized" : 100,
"value" : 100,
"flags" : "------"
},
{
"flags" : "------",
+ "normalized" : 100,
"value" : 100,
"id" : "242",
"raw" : "66916845706732",
diff --git a/test/disk_tests/hdd_smart/sdb_smart_expected.json b/test/disk_tests/hdd_smart/sdb_smart_expected.json
index 41e55fb..ae0f014 100644
--- a/test/disk_tests/hdd_smart/sdb_smart_expected.json
+++ b/test/disk_tests/hdd_smart/sdb_smart_expected.json
@@ -7,11 +7,13 @@
"name" : "Raw_Read_Error_Rate",
"worst" : 63,
"raw" : "215697022",
+ "normalized" : 83,
"value" : 83,
"flags" : "POSR--"
},
{
"flags" : "PO----",
+ "normalized" : 92,
"value" : 92,
"id" : " 3",
"raw" : "0",
@@ -23,6 +25,7 @@
{
"fail" : "-",
"threshold" : 20,
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"worst" : 100,
@@ -32,6 +35,7 @@
},
{
"flags" : "PO--CK",
+ "normalized" : 100,
"value" : 100,
"id" : " 5",
"raw" : "0",
@@ -46,6 +50,7 @@
"name" : "Seek_Error_Rate",
"worst" : 60,
"flags" : "POSR--",
+ "normalized" : 91,
"value" : 91,
"threshold" : 30,
"fail" : "-"
@@ -56,6 +61,7 @@
"worst" : 89,
"id" : " 9",
"flags" : "-O--CK",
+ "normalized" : 89,
"value" : 89,
"fail" : "-",
"threshold" : 0
@@ -63,6 +69,7 @@
{
"fail" : "-",
"threshold" : 97,
+ "normalized" : 100,
"value" : 100,
"flags" : "PO--C-",
"worst" : 100,
@@ -78,6 +85,7 @@
"name" : "Power_Cycle_Count",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
@@ -85,6 +93,7 @@
"worst" : 100,
"raw" : "0",
"id" : "184",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"fail" : "-",
@@ -98,6 +107,7 @@
"name" : "Reported_Uncorrect",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
@@ -108,6 +118,7 @@
"name" : "Command_Timeout",
"worst" : 100,
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
@@ -118,10 +129,12 @@
"name" : "High_Fly_Writes",
"id" : "189",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
"flags" : "-O-RCK",
+ "normalized" : 45,
"value" : 45,
"raw" : "55 (147 229 55 24 0)",
"worst" : 36,
@@ -138,6 +151,7 @@
"name" : "G-Sense_Error_Rate",
"id" : "191",
"flags" : "-O---K",
+ "normalized" : 100,
"value" : 100
},
{
@@ -148,11 +162,13 @@
"worst" : 100,
"name" : "Power-Off_Retract_Count",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
"fail" : "-",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--CK",
"name" : "Load_Cycle_Count",
@@ -164,6 +180,7 @@
"threshold" : 0,
"fail" : "-",
"flags" : "-O--CK",
+ "normalized" : 55,
"value" : 55,
"id" : "194",
"raw" : "55 (0 16 0 0 0)",
@@ -177,6 +194,7 @@
"name" : "Hardware_ECC_Recovered",
"worst" : 13,
"raw" : "215697022",
+ "normalized" : 23,
"value" : 23,
"flags" : "-O---K"
},
@@ -185,6 +203,7 @@
"name" : "Current_Pending_Sector",
"raw" : "0",
"id" : "197",
+ "normalized" : 100,
"value" : 100,
"flags" : "-O--C-",
"fail" : "-",
@@ -195,6 +214,7 @@
"name" : "Offline_Uncorrectable",
"raw" : "0",
"id" : "198",
+ "normalized" : 100,
"value" : 100,
"flags" : "----C-",
"fail" : "-",
@@ -203,6 +223,7 @@
{
"fail" : "-",
"threshold" : 0,
+ "normalized" : 200,
"value" : 200,
"flags" : "-OSRCK",
"worst" : 200,
diff --git a/test/disk_tests/ssd_smart/sda_smart_expected.json b/test/disk_tests/ssd_smart/sda_smart_expected.json
index a71fab2..2b42cf8 100644
--- a/test/disk_tests/ssd_smart/sda_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sda_smart_expected.json
@@ -10,6 +10,7 @@
"flags" : "POSR-K",
"raw" : "0",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
@@ -20,12 +21,14 @@
"flags" : "-O--CK",
"raw" : "0",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
"name" : "Power_On_Hours",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "1309",
@@ -40,9 +43,11 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : " 12",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"raw" : "0",
"flags" : "-O--CK",
@@ -53,6 +58,7 @@
"worst" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "172",
"raw" : "0",
@@ -70,12 +76,14 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : "173",
+ "normalized" : 100,
"value" : 100
},
{
"name" : "Unexpect_Power_Loss_Ct",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "53",
@@ -87,6 +95,7 @@
"flags" : "PO--CK",
"fail" : "-",
"id" : "180",
+ "normalized" : 0,
"value" : 0,
"threshold" : 0,
"name" : "Unused_Reserve_NAND_Blk",
@@ -100,6 +109,7 @@
"raw" : "0",
"flags" : "-O--CK",
"id" : "183",
+ "normalized" : 100,
"value" : 100
},
{
@@ -110,12 +120,14 @@
"flags" : "-O--CK",
"raw" : "0",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
"name" : "Reported_Uncorrect",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"flags" : "-O--CK",
@@ -130,6 +142,7 @@
"fail" : "-",
"flags" : "-O---K",
"raw" : "32 (Min/Max 22/46)",
+ "normalized" : 68,
"value" : 68
},
{
@@ -137,6 +150,7 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : "196",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"name" : "Reallocated_Event_Count",
@@ -147,6 +161,7 @@
"fail" : "-",
"flags" : "-O--CK",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"worst" : 100,
"name" : "Current_Pending_Sector",
@@ -160,6 +175,7 @@
"raw" : "0",
"fail" : "-",
"id" : "198",
+ "normalized" : 100,
"value" : 100
},
{
@@ -170,9 +186,11 @@
"fail" : "-",
"raw" : "0",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "202",
"flags" : "----CK",
@@ -186,6 +204,7 @@
"name" : "Write_Error_Rate",
"threshold" : 0,
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "0",
@@ -200,9 +219,11 @@
"raw" : "0",
"flags" : "-O--CK",
"id" : "210",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "246",
"fail" : "-",
@@ -220,9 +241,11 @@
"raw" : "211228065",
"flags" : "-O--CK",
"id" : "247",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "253276904",
diff --git a/test/disk_tests/ssd_smart/sdb_smart_expected.json b/test/disk_tests/ssd_smart/sdb_smart_expected.json
index 6f55c3e..0614754 100644
--- a/test/disk_tests/ssd_smart/sdb_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sdb_smart_expected.json
@@ -10,6 +10,7 @@
"flags" : "-O--CK",
"raw" : "0",
"id" : " 5",
+ "normalized" : 100,
"value" : 100
},
{
@@ -20,9 +21,11 @@
"fail" : "-",
"raw" : "1259",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : " 12",
"raw" : "191",
@@ -37,6 +40,7 @@
"raw" : "0",
"flags" : "PO--CK",
"fail" : "-",
+ "normalized" : 100,
"value" : 100,
"worst" : 100,
"threshold" : 10,
@@ -46,6 +50,7 @@
"threshold" : 0,
"name" : "Program_Fail_Count",
"worst" : 100,
+ "normalized" : 100,
"value" : 100,
"raw" : "0",
"flags" : "-O--CK",
@@ -60,12 +65,14 @@
"fail" : "-",
"flags" : "-O--CK",
"raw" : "0",
+ "normalized" : 100,
"value" : 100
},
{
"worst" : 100,
"threshold" : 0,
"name" : "Unsafe_Shutdown_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "174",
"raw" : "164",
@@ -73,6 +80,7 @@
"fail" : "-"
},
{
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"flags" : "PO--CK",
@@ -86,6 +94,7 @@
"worst" : 100,
"threshold" : 0,
"name" : "SATA_Downshift_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "183",
"raw" : "0",
@@ -96,6 +105,7 @@
"worst" : 100,
"name" : "End-to-End_Error",
"threshold" : 90,
+ "normalized" : 100,
"value" : 100,
"id" : "184",
"fail" : "-",
@@ -106,6 +116,7 @@
"worst" : 100,
"name" : "Reported_Uncorrect",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"id" : "187",
"fail" : "-",
@@ -120,12 +131,14 @@
"fail" : "-",
"raw" : "28 (Min/Max 21/30)",
"flags" : "-O---K",
+ "normalized" : 72,
"value" : 72
},
{
"worst" : 100,
"threshold" : 0,
"name" : "Unsafe_Shutdown_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "192",
"raw" : "164",
@@ -137,6 +150,7 @@
"fail" : "-",
"raw" : "28",
"flags" : "-O---K",
+ "normalized" : 100,
"value" : 100,
"worst" : 100,
"name" : "Temperature_Internal",
@@ -146,6 +160,7 @@
"worst" : 100,
"threshold" : 0,
"name" : "Current_Pending_Sector",
+ "normalized" : 100,
"value" : 100,
"id" : "197",
"raw" : "0",
@@ -156,6 +171,7 @@
"worst" : 100,
"threshold" : 0,
"name" : "CRC_Error_Count",
+ "normalized" : 100,
"value" : 100,
"id" : "199",
"flags" : "-OSRCK",
@@ -170,9 +186,11 @@
"fail" : "-",
"flags" : "-O--CK",
"raw" : "296600",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "226",
"raw" : "3747",
@@ -190,6 +208,7 @@
"raw" : "0",
"flags" : "-O--CK",
"fail" : "-",
+ "normalized" : 100,
"value" : 100
},
{
@@ -200,6 +219,7 @@
"flags" : "-O--CK",
"fail" : "-",
"id" : "228",
+ "normalized" : 100,
"value" : 100
},
{
@@ -207,12 +227,14 @@
"raw" : "0",
"flags" : "PO--CK",
"id" : "232",
+ "normalized" : 100,
"value" : 100,
"name" : "Available_Reservd_Space",
"threshold" : 10,
"worst" : 100
},
{
+ "normalized" : 97,
"value" : 97,
"fail" : "-",
"flags" : "-O--CK",
@@ -223,6 +245,7 @@
"worst" : 97
},
{
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"raw" : "0/0",
@@ -240,9 +263,11 @@
"fail" : "-",
"raw" : "296600",
"flags" : "-O--CK",
+ "normalized" : 100,
"value" : 100
},
{
+ "normalized" : 100,
"value" : 100,
"id" : "242",
"fail" : "-",
diff --git a/test/disk_tests/ssd_smart/sdc_smart_expected.json b/test/disk_tests/ssd_smart/sdc_smart_expected.json
index f0cffcf..fad095b 100644
--- a/test/disk_tests/ssd_smart/sdc_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sdc_smart_expected.json
@@ -3,6 +3,7 @@
"health" : "PASSED",
"attributes" : [
{
+ "normalized" : 99,
"value" : 99,
"fail" : "-",
"raw" : "34",
diff --git a/test/disk_tests/ssd_smart/sdd_smart_expected.json b/test/disk_tests/ssd_smart/sdd_smart_expected.json
index a85e7d7..8e0bebf 100644
--- a/test/disk_tests/ssd_smart/sdd_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sdd_smart_expected.json
@@ -7,6 +7,7 @@
"worst" : 100,
"raw" : "0",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"name" : "Reallocated_Sector_Ct"
},
@@ -17,6 +18,7 @@
"id" : " 9",
"name" : "Power_On_Hours",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "799"
},
@@ -24,6 +26,7 @@
"name" : "Power_Cycle_Count",
"raw" : "92",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"fail" : "-",
"worst" : 100,
@@ -37,10 +40,12 @@
"id" : "165",
"name" : "Unknown_Attribute",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "9699447"
},
{
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "1",
@@ -56,6 +61,7 @@
"fail" : "-",
"worst" : 100,
"raw" : "46",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"name" : "Unknown_Attribute"
@@ -63,6 +69,7 @@
{
"name" : "Unknown_Attribute",
"raw" : "5",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-",
@@ -75,6 +82,7 @@
"id" : "169",
"worst" : 100,
"fail" : "-",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "1079",
@@ -83,6 +91,7 @@
{
"raw" : "0",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"name" : "Unknown_Attribute",
"id" : "170",
@@ -97,12 +106,14 @@
"flags" : "-O--CK",
"name" : "Unknown_Attribute",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0
},
{
"name" : "Unknown_Attribute",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-",
@@ -113,6 +124,7 @@
{
"name" : "Unknown_Attribute",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "1",
"worst" : 100,
@@ -122,6 +134,7 @@
},
{
"name" : "Unknown_Attribute",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "22",
@@ -136,12 +149,14 @@
"flags" : "-O--CK",
"id" : "184",
"name" : "End-to-End_Error",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "0"
},
{
"name" : "Reported_Uncorrect",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "0",
@@ -153,6 +168,7 @@
{
"name" : "Command_Timeout",
"raw" : "0",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"fail" : "-",
@@ -162,6 +178,7 @@
},
{
"threshold" : 0,
+ "normalized" : 73,
"value" : 73,
"raw" : "27 (Min/Max 23/64)",
"name" : "Temperature_Celsius",
@@ -176,6 +193,7 @@
"flags" : "-O--CK",
"id" : "199",
"name" : "UDMA_CRC_Error_Count",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"raw" : "0"
@@ -183,6 +201,7 @@
{
"name" : "Unknown_SSD_Attribute",
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "146029805602",
"worst" : 100,
@@ -192,6 +211,7 @@
},
{
"raw" : "100",
+ "normalized" : 100,
"value" : 100,
"threshold" : 4,
"name" : "Available_Reservd_Space",
@@ -202,6 +222,7 @@
},
{
"threshold" : 0,
+ "normalized" : 100,
"value" : 100,
"raw" : "1574",
"name" : "Media_Wearout_Indicator",
@@ -216,6 +237,7 @@
"fail" : "-",
"worst" : 100,
"raw" : "2303",
+ "normalized" : 100,
"value" : 100,
"threshold" : 0,
"name" : "Unknown_Attribute"
@@ -227,6 +249,7 @@
"flags" : "----CK",
"name" : "Total_LBAs_Written",
"raw" : "2111",
+ "normalized" : 253,
"value" : 253,
"threshold" : 0
},
@@ -237,11 +260,13 @@
"id" : "242",
"name" : "Total_LBAs_Read",
"threshold" : 0,
+ "normalized" : 253,
"value" : 253,
"raw" : "1542"
},
{
"name" : "Unknown_Attribute",
+ "normalized" : 0,
"value" : 0,
"threshold" : 0,
"raw" : "0",
diff --git a/test/disk_tests/ssd_smart/sde_smart_expected.json b/test/disk_tests/ssd_smart/sde_smart_expected.json
index 1d45c1d..0fa1214 100644
--- a/test/disk_tests/ssd_smart/sde_smart_expected.json
+++ b/test/disk_tests/ssd_smart/sde_smart_expected.json
@@ -9,12 +9,14 @@
"flags": "-O--CK",
"name": "Raw_Read_Error_Rate",
"threshold": 50,
+ "normalized": 120,
"value": 120,
"worst": 120
},
{
"id": " 5",
"fail": "-",
+ "normalized": 100,
"value": 100,
"worst": 100,
"threshold": 3,
@@ -28,6 +30,7 @@
"raw": "7963h+07m+54.620s",
"flags": "-O--CK",
"worst": 91,
+ "normalized": 91,
"value": 91,
"name": "Power_On_Hours_and_Msec",
"threshold": 0
@@ -38,6 +41,7 @@
"threshold": 0,
"name": "Power_Cycle_Count",
"worst": 99,
+ "normalized": 99,
"value": 99,
"flags": "-O--CK",
"raw": "1153"
@@ -46,6 +50,7 @@
"flags": "-O-R--",
"raw": "0",
"worst": 100,
+ "normalized": 100,
"value": 100,
"threshold": 0,
"name": "Program_Fail_Count",
@@ -60,6 +65,7 @@
"name": "Erase_Fail_Count",
"threshold": 0,
"worst": 100,
+ "normalized": 100,
"value": 100
},
{
@@ -67,6 +73,7 @@
"id": "174",
"raw": "113",
"flags": "----CK",
+ "normalized": 0,
"value": 0,
"worst": 0,
"threshold": 0,
@@ -75,6 +82,7 @@
{
"id": "177",
"fail": "-",
+ "normalized": 0,
"value": 0,
"worst": 0,
"name": "Wear_Range_Delta",
@@ -88,6 +96,7 @@
"threshold": 0,
"name": "Program_Fail_Count",
"worst": 100,
+ "normalized": 100,
"value": 100,
"fail": "-",
"id": "181"
@@ -95,6 +104,7 @@
{
"threshold": 0,
"name": "Erase_Fail_Count",
+ "normalized": 100,
"value": 100,
"worst": 100,
"flags": "-O--CK",
@@ -105,6 +115,7 @@
{
"flags": "-O--C-",
"raw": "0",
+ "normalized": 100,
"value": 100,
"worst": 100,
"threshold": 0,
@@ -113,6 +124,7 @@
"id": "187"
},
{
+ "normalized": 27,
"value": 27,
"worst": 49,
"name": "Airflow_Temperature_Cel",
@@ -126,6 +138,7 @@
"threshold": 0,
"name": "Temperature_Celsius",
"worst": 49,
+ "normalized": 27,
"value": 27,
"flags": "-O---K",
"raw": "27 (Min/Max 2/49)",
@@ -136,6 +149,7 @@
"id": "195",
"fail": "-",
"worst": 120,
+ "normalized": 120,
"value": 120,
"threshold": 0,
"name": "ECC_Uncorr_Error_Count",
@@ -149,10 +163,12 @@
"flags": "PO--CK",
"threshold": 3,
"name": "Reallocated_Event_Count",
+ "normalized": 100,
"value": 100,
"worst": 100
},
{
+ "normalized": 120,
"value": 120,
"worst": 120,
"threshold": 0,
@@ -165,6 +181,7 @@
{
"raw": "0/0",
"flags": "--SRC-",
+ "normalized": 120,
"value": 120,
"worst": 120,
"threshold": 0,
@@ -173,6 +190,7 @@
"id": "204"
},
{
+ "normalized": 100,
"value": 100,
"worst": 100,
"threshold": 0,
@@ -186,6 +204,7 @@
"id": "231",
"fail": "-",
"worst": 91,
+ "normalized": 91,
"value": 91,
"name": "SSD_Life_Left",
"threshold": 11,
@@ -197,12 +216,14 @@
"flags": "-O--CK",
"name": "SandForce_Internal",
"threshold": 0,
+ "normalized": 0,
"value": 0,
"worst": 0,
"fail": "-",
"id": "233"
},
{
+ "normalized": 0,
"value": 0,
"worst": 0,
"name": "SandForce_Internal",
@@ -214,6 +235,7 @@
},
{
"worst": 0,
+ "normalized": 0,
"value": 0,
"name": "Lifetime_Writes_GiB",
"threshold": 0,
@@ -225,6 +247,7 @@
{
"flags": "-O--CK",
"raw": "34599",
+ "normalized": 0,
"value": 0,
"worst": 0,
"threshold": 0,
@@ -236,6 +259,7 @@
"threshold": 10,
"name": "Unknown_Attribute",
"worst": 99,
+ "normalized": 99,
"value": 99,
"flags": "------",
"raw": "4063273",
--
2.30.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pve-devel] [PATCH widget-toolkit] fix #4165: SMART: use changed columns from the API
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
@ 2022-07-21 10:45 ` Matthias Heiserer
-1 siblings, 0 replies; 14+ messages in thread
From: Matthias Heiserer @ 2022-07-21 10:45 UTC (permalink / raw)
To: pve-devel, pbs-devel
Makes the column names and the data name in the API consistent.
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
---
src/window/DiskSmart.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/window/DiskSmart.js b/src/window/DiskSmart.js
index 3c8040b..fc4b2cc 100644
--- a/src/window/DiskSmart.js
+++ b/src/window/DiskSmart.js
@@ -37,13 +37,13 @@ Ext.define('Proxmox.window.DiskSmart', {
renderer: Ext.String.htmlEncode,
},
{
- text: gettext('Value'),
+ text: gettext('Raw'),
dataIndex: 'raw',
renderer: Ext.String.htmlEncode,
},
{
text: gettext('Normalized'),
- dataIndex: 'value',
+ dataIndex: 'normalized',
width: 60,
},
{
@@ -154,7 +154,7 @@ Ext.define('Proxmox.window.DiskSmart', {
Ext.define('pmx-smart-attribute', {
extend: 'Ext.data.Model',
fields: [
- { name: 'id', type: 'number' }, 'name', 'value', 'worst', 'threshold', 'flags', 'fail', 'raw',
+ { name: 'id', type: 'number' }, 'name', 'raw', 'worst', 'threshold', 'flags', 'fail', 'normalized',
],
idProperty: 'name',
});
--
2.30.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pbs-devel] [PATCH widget-toolkit] fix #4165: SMART: use changed columns from the API
@ 2022-07-21 10:45 ` Matthias Heiserer
0 siblings, 0 replies; 14+ messages in thread
From: Matthias Heiserer @ 2022-07-21 10:45 UTC (permalink / raw)
To: pve-devel, pbs-devel
Makes the column names and the data name in the API consistent.
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
---
src/window/DiskSmart.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/window/DiskSmart.js b/src/window/DiskSmart.js
index 3c8040b..fc4b2cc 100644
--- a/src/window/DiskSmart.js
+++ b/src/window/DiskSmart.js
@@ -37,13 +37,13 @@ Ext.define('Proxmox.window.DiskSmart', {
renderer: Ext.String.htmlEncode,
},
{
- text: gettext('Value'),
+ text: gettext('Raw'),
dataIndex: 'raw',
renderer: Ext.String.htmlEncode,
},
{
text: gettext('Normalized'),
- dataIndex: 'value',
+ dataIndex: 'normalized',
width: 60,
},
{
@@ -154,7 +154,7 @@ Ext.define('Proxmox.window.DiskSmart', {
Ext.define('pmx-smart-attribute', {
extend: 'Ext.data.Model',
fields: [
- { name: 'id', type: 'number' }, 'name', 'value', 'worst', 'threshold', 'flags', 'fail', 'raw',
+ { name: 'id', type: 'number' }, 'name', 'raw', 'worst', 'threshold', 'flags', 'fail', 'normalized',
],
idProperty: 'name',
});
--
2.30.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [pve-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
@ 2022-09-22 10:35 ` Dominik Csapak
-1 siblings, 0 replies; 14+ messages in thread
From: Dominik Csapak @ 2022-09-22 10:35 UTC (permalink / raw)
To: Proxmox VE development discussion, Matthias Heiserer, pbs-devel
all 3 patches LGTM
the only (minor) thing is that the wt patch could have handled the current situation
(pve raw+value, pbs normalized+value), e.g by using the field 'convert' or 'calculate'
methods of extjs (we could have had a 'real_raw' and 'real_normalized' that uses
the values depending on which exist) then we would not need a depends/breaks on the
versions (not sure which direction here)
if everybody else is ok with these dependencies, consider these patches:
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.cspak@proxmox.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [pbs-devel] [pve-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field
@ 2022-09-22 10:35 ` Dominik Csapak
0 siblings, 0 replies; 14+ messages in thread
From: Dominik Csapak @ 2022-09-22 10:35 UTC (permalink / raw)
To: Proxmox VE development discussion, Matthias Heiserer, pbs-devel
all 3 patches LGTM
the only (minor) thing is that the wt patch could have handled the current situation
(pve raw+value, pbs normalized+value), e.g by using the field 'convert' or 'calculate'
methods of extjs (we could have had a 'real_raw' and 'real_normalized' that uses
the values depending on which exist) then we would not need a depends/breaks on the
versions (not sure which direction here)
if everybody else is ok with these dependencies, consider these patches:
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.cspak@proxmox.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pve-devel] applied: [pbs-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
@ 2022-09-23 10:28 ` Thomas Lamprecht
-1 siblings, 0 replies; 14+ messages in thread
From: Thomas Lamprecht @ 2022-09-23 10:28 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Matthias Heiserer,
pve-devel
Am 21/07/2022 um 12:45 schrieb Matthias Heiserer:
> This makes it consistent with the naming scheme in PVE/GUI.
> Keep value for API stability reasons, and remove it in next major version.
>
> Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
> ---
> src/tools/disks/smart.rs | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
>
applied, with Dominik's T-b/R-b and a small follow up (see below), thanks!
> diff --git a/src/tools/disks/smart.rs b/src/tools/disks/smart.rs
> index 3738cdfd..787971e9 100644
> --- a/src/tools/disks/smart.rs
> +++ b/src/tools/disks/smart.rs
> @@ -25,8 +25,11 @@ pub enum SmartStatus {
> pub struct SmartAttribute {
> /// Attribute name
> name: String,
> - /// Attribute raw value
> + // fixme remove value in major release
Please capitalize FIXME, as that way most editors will highlight it by default,
additionally include the specific major release this should be removed. I changed
it to:
// FIXME: remove value with next major relase (PBS 3.0)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup] fix #4165: SMART: add raw field
@ 2022-09-23 10:28 ` Thomas Lamprecht
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Lamprecht @ 2022-09-23 10:28 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Matthias Heiserer,
pve-devel
Am 21/07/2022 um 12:45 schrieb Matthias Heiserer:
> This makes it consistent with the naming scheme in PVE/GUI.
> Keep value for API stability reasons, and remove it in next major version.
>
> Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
> ---
> src/tools/disks/smart.rs | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
>
applied, with Dominik's T-b/R-b and a small follow up (see below), thanks!
> diff --git a/src/tools/disks/smart.rs b/src/tools/disks/smart.rs
> index 3738cdfd..787971e9 100644
> --- a/src/tools/disks/smart.rs
> +++ b/src/tools/disks/smart.rs
> @@ -25,8 +25,11 @@ pub enum SmartStatus {
> pub struct SmartAttribute {
> /// Attribute name
> name: String,
> - /// Attribute raw value
> + // fixme remove value in major release
Please capitalize FIXME, as that way most editors will highlight it by default,
additionally include the specific major release this should be removed. I changed
it to:
// FIXME: remove value with next major relase (PBS 3.0)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pve-devel] applied: [pbs-devel] [PATCH pve-storage] fix #4165: disk: SMART: add normalized field
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
@ 2022-09-23 10:29 ` Thomas Lamprecht
-1 siblings, 0 replies; 14+ messages in thread
From: Thomas Lamprecht @ 2022-09-23 10:29 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Matthias Heiserer,
pve-devel
Am 21/07/2022 um 12:45 schrieb Matthias Heiserer:
> This makes it consistent with the naming scheme in PBS/GUI.
> Keep value for API stability reasons and remove it in the next major version.
>
> Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
> ---
> PVE/Diskmanage.pm | 2 ++
> .../hdd_smart/sda_smart_expected.json | 24 ++++++++++++++++++
> .../hdd_smart/sdb_smart_expected.json | 21 ++++++++++++++++
> .../ssd_smart/sda_smart_expected.json | 23 +++++++++++++++++
> .../ssd_smart/sdb_smart_expected.json | 25 +++++++++++++++++++
> .../ssd_smart/sdc_smart_expected.json | 1 +
> .../ssd_smart/sdd_smart_expected.json | 25 +++++++++++++++++++
> .../ssd_smart/sde_smart_expected.json | 24 ++++++++++++++++++
> 8 files changed, 145 insertions(+)
>
>
applied, with Dominik's R-b & T-B trailers and a similar followup w.r.t. the FIXME comment
as in PBS, thanks!
^ permalink raw reply [flat|nested] 14+ messages in thread
* [pbs-devel] applied: [PATCH pve-storage] fix #4165: disk: SMART: add normalized field
@ 2022-09-23 10:29 ` Thomas Lamprecht
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Lamprecht @ 2022-09-23 10:29 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Matthias Heiserer,
pve-devel
Am 21/07/2022 um 12:45 schrieb Matthias Heiserer:
> This makes it consistent with the naming scheme in PBS/GUI.
> Keep value for API stability reasons and remove it in the next major version.
>
> Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
> ---
> PVE/Diskmanage.pm | 2 ++
> .../hdd_smart/sda_smart_expected.json | 24 ++++++++++++++++++
> .../hdd_smart/sdb_smart_expected.json | 21 ++++++++++++++++
> .../ssd_smart/sda_smart_expected.json | 23 +++++++++++++++++
> .../ssd_smart/sdb_smart_expected.json | 25 +++++++++++++++++++
> .../ssd_smart/sdc_smart_expected.json | 1 +
> .../ssd_smart/sdd_smart_expected.json | 25 +++++++++++++++++++
> .../ssd_smart/sde_smart_expected.json | 24 ++++++++++++++++++
> 8 files changed, 145 insertions(+)
>
>
applied, with Dominik's R-b & T-B trailers and a similar followup w.r.t. the FIXME comment
as in PBS, thanks!
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [pve-devel] [pbs-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field
2022-09-22 10:35 ` [pbs-devel] " Dominik Csapak
@ 2022-09-23 10:31 ` Thomas Lamprecht
-1 siblings, 0 replies; 14+ messages in thread
From: Thomas Lamprecht @ 2022-09-23 10:31 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Dominik Csapak,
Proxmox VE development discussion, Matthias Heiserer
Am 22/09/2022 um 12:35 schrieb Dominik Csapak:
>
> the only (minor) thing is that the wt patch could have handled the current situation
> (pve raw+value, pbs normalized+value), e.g by using the field 'convert' or 'calculate'
> methods of extjs (we could have had a 'real_raw' and 'real_normalized' that uses
> the values depending on which exist) then we would not need a depends/breaks on the
> versions (not sure which direction here)
>
> if everybody else is ok with these dependencies, consider these patches:
This cannot really be solved by dependencies, as the frontend (normally) doesn't
run on the same host as the backend, so a newer frontend (e.g., connected through
another cluster node) "breaks". So as long as its easy as in this case, I really
would do backward compat handling in the frontend.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [pbs-devel] [pve-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field
@ 2022-09-23 10:31 ` Thomas Lamprecht
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Lamprecht @ 2022-09-23 10:31 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Dominik Csapak,
Proxmox VE development discussion, Matthias Heiserer
Am 22/09/2022 um 12:35 schrieb Dominik Csapak:
>
> the only (minor) thing is that the wt patch could have handled the current situation
> (pve raw+value, pbs normalized+value), e.g by using the field 'convert' or 'calculate'
> methods of extjs (we could have had a 'real_raw' and 'real_normalized' that uses
> the values depending on which exist) then we would not need a depends/breaks on the
> versions (not sure which direction here)
>
> if everybody else is ok with these dependencies, consider these patches:
This cannot really be solved by dependencies, as the frontend (normally) doesn't
run on the same host as the backend, so a newer frontend (e.g., connected through
another cluster node) "breaks". So as long as its easy as in this case, I really
would do backward compat handling in the frontend.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2022-09-23 10:31 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-21 10:45 [pve-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field Matthias Heiserer
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
2022-07-21 10:45 ` [pve-devel] [PATCH pve-storage] fix #4165: disk: SMART: add normalized field Matthias Heiserer
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
2022-09-23 10:29 ` [pve-devel] applied: " Thomas Lamprecht
2022-09-23 10:29 ` [pbs-devel] applied: " Thomas Lamprecht
2022-07-21 10:45 ` [pve-devel] [PATCH widget-toolkit] fix #4165: SMART: use changed columns from the API Matthias Heiserer
2022-07-21 10:45 ` [pbs-devel] " Matthias Heiserer
2022-09-22 10:35 ` [pve-devel] [PATCH proxmox-backup] fix #4165: SMART: add raw field Dominik Csapak
2022-09-22 10:35 ` [pbs-devel] " Dominik Csapak
2022-09-23 10:31 ` [pve-devel] [pbs-devel] " Thomas Lamprecht
2022-09-23 10:31 ` [pbs-devel] [pve-devel] " Thomas Lamprecht
2022-09-23 10:28 ` [pve-devel] applied: [pbs-devel] " Thomas Lamprecht
2022-09-23 10:28 ` [pbs-devel] applied: " Thomas Lamprecht
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal