all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk
Date: Fri, 11 Dec 2020 14:52:41 +0100	[thread overview]
Message-ID: <20201211135241.27957-2-d.csapak@proxmox.com> (raw)
In-Reply-To: <20201211135241.27957-1-d.csapak@proxmox.com>

for some controllers/disks there the line is
Percentage used endurance indicator: x%

so extend the regex for that possibilty.
We even had a test-case for SAS but did not notice we could extract
that info from there...

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 PVE/Diskmanage.pm                               | 4 ++--
 test/disk_tests/sas/sda_smart_expected.json     | 3 ++-
 test/disk_tests/sas_ssd/disklist_expected.json  | 2 +-
 test/disk_tests/sas_ssd/sda_smart_expected.json | 3 ++-
 4 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index a46cc73..116a99a 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -134,8 +134,8 @@ sub get_smart_data {
 	    } elsif (defined($type) && $type eq 'text') {
 		$smartdata->{text} = '' if !defined $smartdata->{text};
 		$smartdata->{text} .= "$line\n";
-		# extract wearout from nvme text, allow for decimal values
-		if ($line =~ m/Percentage Used:\s*(\d+(?:\.\d+)?)\%/i) {
+		# extract wearout from nvme/sas text, allow for decimal values
+		if ($line =~ m/Percentage Used(?: endurance indicator)?:\s*(\d+(?:\.\d+)?)\%/i) {
 		    $smartdata->{wearout} = 100 - $1;
 		}
 	    } elsif ($line =~ m/SMART Disabled/) {
diff --git a/test/disk_tests/sas/sda_smart_expected.json b/test/disk_tests/sas/sda_smart_expected.json
index e096c8b..2964372 100644
--- a/test/disk_tests/sas/sda_smart_expected.json
+++ b/test/disk_tests/sas/sda_smart_expected.json
@@ -1,5 +1,6 @@
 {
     "health" : "OK",
     "text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature:     20 C\nDrive Trip Temperature:        70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime:  0\nAccumulated start-stop cycles:  0\nSpecified load-unload count over device lifetime:  0\nAccumulated load-unload cycles:  0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n  Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n  number of hours powered up = 7127.12\n  number of minutes until next internal SMART test = 0\n",
-    "type" : "text"
+    "type" : "text",
+    "wearout": 100
 }
diff --git a/test/disk_tests/sas_ssd/disklist_expected.json b/test/disk_tests/sas_ssd/disklist_expected.json
index 9e7ada3..dd9b748 100644
--- a/test/disk_tests/sas_ssd/disklist_expected.json
+++ b/test/disk_tests/sas_ssd/disklist_expected.json
@@ -11,7 +11,7 @@
 	"rpm" : 0,
 	"size" : 5120000,
 	"serial" : "SER2",
-	"wearout" : "N/A",
+	"wearout" : 100,
 	"by_id_link" : "/dev/disk/by-id/scsi-00000000000000000"
     }
 }
diff --git a/test/disk_tests/sas_ssd/sda_smart_expected.json b/test/disk_tests/sas_ssd/sda_smart_expected.json
index e096c8b..2964372 100644
--- a/test/disk_tests/sas_ssd/sda_smart_expected.json
+++ b/test/disk_tests/sas_ssd/sda_smart_expected.json
@@ -1,5 +1,6 @@
 {
     "health" : "OK",
     "text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature:     20 C\nDrive Trip Temperature:        70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime:  0\nAccumulated start-stop cycles:  0\nSpecified load-unload count over device lifetime:  0\nAccumulated load-unload cycles:  0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n  Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n  number of hours powered up = 7127.12\n  number of minutes until next internal SMART test = 0\n",
-    "type" : "text"
+    "type" : "text",
+    "wearout": 100
 }
-- 
2.20.1





  reply	other threads:[~2020-12-11 13:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-11 13:52 [pve-devel] [PATCH storage 1/2] tests: add ssd sas disk Dominik Csapak
2020-12-11 13:52 ` Dominik Csapak [this message]
2020-12-15 13:42   ` [pve-devel] applied: [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk Thomas Lamprecht
2020-12-15 13:42 ` [pve-devel] applied: [PATCH storage 1/2] tests: add ssd sas disk Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201211135241.27957-2-d.csapak@proxmox.com \
    --to=d.csapak@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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