From 0176449a81693ae24df4bc469b294ccf932f5189 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Sun, 20 Feb 2022 19:59:35 -0800 Subject: [PATCH] Check for any of the drive IDs --- smart-status/status_monitor.pl | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/smart-status/status_monitor.pl b/smart-status/status_monitor.pl index 6cb37cbf4..189f7b5b9 100755 --- a/smart-status/status_monitor.pl +++ b/smart-status/status_monitor.pl @@ -22,7 +22,7 @@ local ($type, $mon, $ui) = @_; local @drives = &list_smart_disks_partitions(); local ($d) = grep { ($_->{'device'} eq $mon->{'drive'} || - $_->{'id'} eq $mon->{'drive'}) && + &indexof($mon->{'drive'}, @{$_->{'ids'}}) >= 0) && $_->{'subdisk'} eq $mon->{'subdisk'} } @drives; if (!$d) { # Not in list?! @@ -103,16 +103,23 @@ sub status_monitor_dialog local ($type, $mon) = @_; local $rv; local @drives = &list_smart_disks_partitions(); -local ($inlist) = grep { ($_->{'device'} eq $mon->{'drive'} || - $_->{'id'} eq $mon->{'drive'}) && - $_->{'subdisk'} eq $mon->{'subdisk'} } @drives; +local ($inlist, $invalue); +foreach my $d (@drives) { + if ($d->{'device'} eq $mon->{'drive'} && + $d->{'subdisk'} eq $mon->{'subdisk'}) { + $inlist = 1; + $invalue = $mon->{'drive'}.":".$mon->{'subdisk'}; + } + elsif (&indexof($mon->{'drive'}, @{$d->{'ids'}}) >= 0 && + $d->{'subdisk'} eq $mon->{'subdisk'}) { + $inlist = 1; + $invalue = $d->{'id'}.":".$mon->{'subdisk'}; + } + } $inlist = 1 if (!$mon->{'drive'}); $rv .= &ui_table_row($text{'monitor_drive'}, &ui_select("drive", - !$mon->{'drive'} ? $drives[0]->{'device'} : - $inlist ? ($inlist->{'id'} || $inlist->{'device'}).':'. - $inlist->{'subdisk'} : - undef, + !$mon->{'drive'} ? $drives[0]->{'device'} : $invalue, [ (map { [ ($_->{'id'} || $_->{'device'}).':'.$_->{'subdisk'}, $_->{'desc'}.($_->{'model'} ? " ($_->{'model'})" : "") ] } @drives),