SMART dashboard widget to display correct status (#1428)

This commit is contained in:
nhirokinet 2019-08-23 16:48:56 +09:00 committed by Franco Fichtner
parent b63dfadb3e
commit 8f09bce27b
2 changed files with 5 additions and 14 deletions

View file

@ -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]"

View file

@ -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;
}
?>
<tr>
<td><?= $dev->device ?></td>
<td style="text-align:center"><?= $dev->ident ?></td>
<td style="text-align:center"><span class="label label-<?= $color ?>">&nbsp;<?= $dev_state_translated ?>&nbsp;</span></td>
<td style="text-align:center"><span class="label label-<?= $color ?>">&nbsp;<?= html_safe($dev_state_translated) ?>&nbsp;</span></td>
</tr>
<?php
}