From 8f09bce27bcab3471160065e3e796f0d188e48ad Mon Sep 17 00:00:00 2001 From: nhirokinet Date: Fri, 23 Aug 2019 16:48:56 +0900 Subject: [PATCH] SMART dashboard widget to display correct status (#1428) --- .../scripts/OPNsense/Smart/detailed_list.sh | 6 ++---- .../src/www/widgets/widgets/smart_status.widget.php | 13 +++---------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh b/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh index cfcb64891..b4bac7d46 100755 --- a/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh +++ b/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh @@ -29,15 +29,13 @@ result="" for dev in `ls /dev | grep '^\(ad\|da\|ada\)[0-9]\{1,2\}$'`; do ident=`/usr/sbin/diskinfo -v $dev | grep ident | awk '{print $1}'`; - state=`/usr/local/sbin/smartctl -H $dev | awk -F: ' -/^SMART overall-health self-assessment test result/ {print $2;exit} -/^SMART Health Status/ {print $2;exit}'`; + state=`/usr/local/sbin/smartctl -jH /dev/$dev` if [ -n "$result" ]; then result="$result,"; fi - result="$result{\"device\":\"$dev\",\"ident\":\"$ident\",\"state\":\"$state\"}"; + result="$result{\"device\":\"$dev\",\"ident\":\"$ident\",\"state\":$state}"; done echo "[$result]" diff --git a/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php b/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php index 81f049cbd..6467466e0 100644 --- a/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php +++ b/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php @@ -46,25 +46,18 @@ $devs = json_decode (configd_run ("smart detailed list")); foreach ($devs as $dev) { $dev_state_translated = ""; - switch ($dev->state) { - case "PASSED": - case "OK": + if ($dev->state->smart_status->passed) { $dev_state_translated = gettext('OK'); $color = "success"; - break; - case "": + } else { $dev_state_translated = gettext('Unknown'); $color = "warning"; - break; - default: - $color = "danger"; - break; } ?> device ?> ident ?> -    +