2 # Check if some RAID device is reporting errors
6 return { 'up' => -1 } if (!&foreign_check("raid"));
7 &foreign_require("raid", "raid-lib.pl");
8 local $conf = &raid::get_raidtab();
9 local ($raid) = grep { $_->{'value'} eq $_[0]->{'device'} } @$conf;
11 if (ref($raid->{'errors'})) {
12 local ($bad) = grep { $_ eq "_" } @{$raid->{'errors'}};
15 'desc' => $text{'raid_bad'} };
21 elsif ($raid->{'resync'}) {
23 'desc' => $text{'raid_resync'} };
31 'desc' => &text('raid_notfound', $_[0]->{'device'}) };
37 &foreign_require("raid", "raid-lib.pl");
38 local $conf = &raid::get_raidtab();
40 foreach my $c (@$conf) {
41 local $lvl = &raid::find_value('raid-level', $c->{'members'});
42 push(@opts, [ $c->{'value'},
44 ($lvl eq 'linear' ? $raid::text{'linear'}
45 : $raid::text{"raid$lvl"}) ]);
47 local ($got) = grep { $_->[0] eq $_[0]->{'device'} } @opts;
49 print &ui_table_row($text{'raid_device'},
50 &ui_textbox("other", $_[0]->{'device'}, 10));
53 push(@opts, [ "", $text{'raid_other'} ]);
54 print &ui_table_row($text{'raid_device'},
55 &ui_select("device", !$_[0]->{'device'} ? $opts[0]->[0] :
56 !$got ? "" : $_[0]->{'device'}, \@opts).
57 " ".&ui_textbox("other", $got ? "" : $_[0]->{'device'}, 10));
63 &depends_check($_[0], "raid");
64 $_[0]->{'device'} = $in{'device'} || $in{'other'};
65 $_[0]->{'device'} =~ /^\S+$/ || &error($text{'raid_edevice'});