#!/usr/local/bin/perl # view_raid.cgi # Display information about a raid device require './raid-lib.pl'; &foreign_require("mount", "mount-lib.pl"); &foreign_require("lvm", "lvm-lib.pl"); &ReadParse(); &header($text{'view_title'}, ""); $conf = &get_raidtab(); $raid = $conf->[$in{'idx'}]; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "
$text{'view_header'}
\n"; print "\n"; print "\n"; $lvl = &find_value('raid-level', $raid->{'members'}); print "\n"; print "\n"; @st = &device_status($raid->{'value'}); print "\n"; if ($raid->{'size'}) { print "\n"; print "\n"; } if ($raid->{'resync'}) { print "\n"; print "\n"; } $super = &find_value('persistent-superblock', $raid->{'members'}); print "\n"; print "\n"; if ($lvl eq '5') { $parity = &find_value('parity-algorithm', $raid->{'members'}); print "\n"; print "\n"; } $chunk = &find_value('chunk-size', $raid->{'members'}); print "\n"; print "\n"; # Display partitions in RAID print "\n"; # Display spare partitions foreach $d (&find('device', $raid->{'members'})) { if (&find('spare-disk', $d->{'members'})) { if ($d->{'value'} =~ /(h|s)d(\S+)(\d+)$/) { $sp .= &text('select_part', $1 eq 'h' ? 'IDE' : 'SCSI', uc($2), "$3")."
\n"; } else { $sp .= $d->{'value'}."
\n"; } } } if ($sp) { print "\n"; } print "
$text{'view_device'}$raid->{'value'}
$text{'view_level'}",$lvl eq 'linear' ? $text{'linear'} : $text{"raid$lvl"},"
$text{'view_status'} \n"; print $st[1] eq 'lvm' ? &text('view_lvm', "$st[0]") : $st[2] ? &text('view_mounted', "$st[0]") : @st ? &text('view_mount', "$st[0]") : $raid->{'active'} ? $text{'view_active'} : $text{'view_inactive'}; print "
$text{'view_size'}$raid->{'size'} blocks
$text{'view_resync'}$raid->{'resync'} \%
$text{'view_super'}",$super ? $text{'yes'} : $text{'no'},"
$text{'view_parity'}",$parity ? $parity : $text{'default'},"
$text{'view_chunk'}$chunk kB
$text{'view_disks'} \n"; foreach $d (&find('device', $raid->{'members'})) { if (&find('raid-disk', $d->{'members'}) || &find('parity-disk', $d->{'members'})) { local $name = &mount::device_name($d->{'value'}); print $name,"\n"; if (&indexof($d->{'value'}, @{$raid->{'devices'}}) < 0 && $raid->{'active'}) { print "$text{'view_down'}\n"; } print "
\n"; } } print "
$text{'view_spares'} \n"; print $sp,"
\n"; if ($st[2]) { print "
$text{'view_cannot'}

\n"; } else { if ($raid->{'active'}) { print " \n"; } else { print " \n"; } print " \n"; if ($raid->{'active'}) { # Show buttons for creating filesystems &foreign_require("fdisk", "fdisk-lib.pl"); print "


\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "$text{'view_mkfsdesc'}
\n"; } } print "
\n"; print "
\n"; &footer("", $text{'index_return'});