From 51f9b7e4ee71b1dbe199e4049a44a9144a9ab795 Mon Sep 17 00:00:00 2001 From: jim-p Date: Tue, 20 Aug 2013 13:49:17 -0400 Subject: Add patch from the ticket to fix #3149 --- usr/local/www/widgets/widgets/smart_status.widget.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/usr/local/www/widgets/widgets/smart_status.widget.php b/usr/local/www/widgets/widgets/smart_status.widget.php index 669a9c0..a4a9f5b 100644 --- a/usr/local/www/widgets/widgets/smart_status.widget.php +++ b/usr/local/www/widgets/widgets/smart_status.widget.php @@ -47,9 +47,21 @@ exec("ls /dev | grep '^\(ad\|da\|ada\)[0-9]\{1,2\}$'", $devs); ## From SMART sta if(count($devs) > 0) { foreach($devs as $dev) { ## for each found drive do $dev_ident = exec("diskinfo -v /dev/$dev | grep ident | awk '{print $1}'"); ## get identifier from drive - $dev_state = exec("smartctl -H /dev/$dev | grep result: | awk '{print $6}'"); ## get SMART state from drive - # Use light green color for passed, light coral otherwise. - $color = ($dev_state == "PASSED") ? "#90EE90" : "#F08080"; + $dev_state = trim(exec("smartctl -H /dev/$dev | awk -F: '/^SMART overall-health self-assessment test result/ {print $2;exit} +/^SMART Health Status/ {print $2;exit}'")); ## get SMART state from drive + switch ($dev_state) { + case "PASSED": + case "OK": + $color = "#90EE90"; + break; + case "": + $dev_state = "Unknown"; + $color = "#C0B788"; + break; + default: + $color = "#F08080"; + break; + } ?> -- cgit v1.1