[ Avaa Bypassed ]




Upload:

Command:

www-data@18.188.66.142: ~ $
#!/usr/bin/perl
# view_raid.cgi
# Display information about a raid device

require './raid-lib.pl';
&foreign_require("mount");
&foreign_require("lvm");
&ReadParse();

print "Refresh: $config{'refresh'}\r\n"
	if ($config{'refresh'});
&ui_print_header(undef, $text{'view_title'}, "");
$conf = &get_raidtab();
$raid = $conf->[$in{'idx'}];

print &ui_form_start("save_raid.cgi");
print &ui_hidden("idx", $in{'idx'});
print &ui_table_start($text{'view_header'}, undef, 2);

# Device name
print &ui_table_row($text{'view_device'}, "<tt>$raid->{'value'}</tt>");

# UUID
$uuid = &find_value('array-uuid', $raid->{'members'});
print &ui_table_row($text{'view_uuid'}, $uuid);

# RAID level
$lvl = &find_value('raid-level', $raid->{'members'});
print &ui_table_row($text{'view_level'},
	$lvl eq 'linear' ? $text{'linear'} : $text{"raid$lvl"});

# Current status
@st = &device_status($raid->{'value'});
print &ui_table_row($text{'view_status'},
      $st[1] eq 'lvm' ? &text('view_lvm', "<tt>$st[0]</tt>") :
      $st[1] eq 'iscsi' ? &text('view_iscsi', "<tt>$st[0]</tt>") :
      $st[2] ? &text('view_mounted', "<tt>$st[0]</tt>") :
      @st ? &text('view_mount', "<tt>$st[0]</tt>") :
      $raid->{'active'} ? $text{'view_active'} :
			  $text{'view_inactive'});

if ($raid->{'size'}) {
	print &ui_table_row($text{'view_size'},
		&text('view_blocks', $raid->{'size'})." ".
	        "(".&nice_size($raid->{'size'}*1024).")");
	}
if ($raid->{'resync'}) {
	print &ui_table_row($text{'view_resync'},
		$raid->{'resync'} eq 'delayed' ? $text{'view_delayed'}
					       : "$raid->{'resync'} \%");
	}

# Superblock?
$super = &find_value('persistent-superblock', $raid->{'members'});
print &ui_table_row($text{'view_super'},
	$super ? $text{'yes'} : $text{'no'});

# Layout
if (($lvl eq '5') || ($lvl eq '6') || ($lvl eq '10')) {
	$layout = &find_value('parity-algorithm', $raid->{'members'});
	print &ui_table_row($text{'view_parity'}, $layout || $text{'default'});
	}

# Chunk size
$chunk = &find_value('chunk-size', $raid->{'members'});
print &ui_table_row($text{'view_chunk'},
	$chunk ? "$chunk kB" : $text{'default'});

# Current errors
if (ref($raid->{'errors'})) {
	for($i=0; $i<@{$raid->{'errors'}}; $i++) {
		if ($raid->{'errors'}->[$i] ne "U") {
			push(@badlist, $raid->{'devices'}->[$i]);
			}
		}
	if (@badlist) {
		print &ui_table_row($text{'view_errors'},
			"<font color=#ff0000>".
			&text('view_bad', scalar(@badlist)).
			"</font>");
		}
	}

# Current state
if ($raid->{'state'}) {
	print &ui_table_row($text{'view_state'}, $raid->{'state'});
	}

# Rebuild percent
if ($raid->{'rebuild'} ne '') {
	print &ui_table_row($text{'view_rebuild'},
		$raid->{'rebuild'}." \% (".$raid->{'remain'}." min, ".
		int($raid->{'speed'} / 1024)." MB/s)");
	}


# Display partitions in RAID
$rp = undef;
@devs = sort { $a->{'value'} cmp $b->{'value'} }
	     &find('device', $raid->{'members'});
foreach $d (@devs) {
	if (&find('raid-disk', $d->{'members'}) ||
            &find('parity-disk', $d->{'members'})) {
		local $name = &mount::device_name($d->{'value'});
		$rp .= $name."\n";
		if (!&indevlist($d->{'value'}, $raid->{'devices'}) &&
		    $raid->{'active'}) {
			$rp .= "<font color=#ff0000>$text{'view_down'}</font>\n";
			}
		$rp .= "<br>\n";
		push(@rdisks, [ $d->{'value'}, $name ]);
		push(@datadisks, [ $d->{'value'}, $name ]);
		}
	}

$raidcnt = @rdisks;

print &ui_table_row($text{'view_disks'}, $rp);

# Display spare partitions
$sp = undef;
$sparescnt = 0;
$newdisks = @rdisks;
@spares = ( );
foreach $d (@devs) {
	if (&find('spare-disk', $d->{'members'})) {
		local $name = &mount::device_name($d->{'value'});
		$sp .= "$name<br>\n";
		push(@rdisks, [ $d->{'value'}, $name ]);
		push(@sparedisks, [ $d->{'value'}, $name ]);
		$sparescnt++;
		$newdisks++;
		push(@spares, [ "$newdisks", "+ $sparescnt" ]);
		}
	}
if ($sp) {
	print &ui_table_row($text{'view_spares'}, $sp);
	}

# Display spare group, if any
$sg = &find_value("spare-group", $raid->{'members'});
if ($sg) {
	print &ui_table_row($text{'view_sparegroup'}, "<tt>$sg</tt>");
	}

print &ui_table_end();

print &ui_hr();
@grid = ( );

if ($raid_mode eq "raidtools" && !$st[2]) {
	# Only classic raid tools can disable a RAID
	local $act = $raid->{'active'} ? "stop" : "start";
	push(@grid, &ui_submit($text{'view_'.$act}, $act),
		    $text{'view_'.$act.'desc'});
	}

if ($raid_mode eq "mdadm") {
	# Only MDADM can add or remove a device (so far)
	@disks = &find_free_partitions([ $raid->{'value'} ], 0, 1);
	if (@disks) {
		push(@grid, &ui_submit($text{'view_add'}, "add")." ".
			    &ui_select("disk", undef, \@disks),
			    $text{'view_adddesc'});
		}
	if (@rdisks > 1) {
		@rdisks = sort { $a->[0] cmp $b->[0] } @rdisks;
		push(@grid, &ui_submit($text{'view_remove'}, "remove")." ".
			    &ui_select("rdisk", undef, \@rdisks),
			    $text{'view_removedesc'});
		push(@grid, &ui_submit($text{'view_remove_det'}, "remove_det"),
			    $text{'view_remove_detdesc'});
		}
	if ($sparescnt > 0 && &get_mdadm_version() >= 3.3 && &supports_replace()) {
		@rdisks = sort { $a->[0] cmp $b->[0] } @rdisks;
		@spares = sort { $a->[0] cmp $b->[0] } @spares;
                push(@grid, &ui_submit($text{'view_replace'}, "replace")." ".
                            &ui_select("replacedisk", undef, \@datadisks)." with ".
                            &ui_select("replacesparedisk", undef, \@sparedisks),
                            $text{'view_replacedesc'});
		}
	if ($sparescnt > 0 && $lvl != 10) {
		@spares = sort { $a->[0] cmp $b->[0] } @spares;
		push(@grid, &ui_submit($text{'view_grow'}, "grow")." ".
			    &ui_select("ndisk_grow", undef, \@spares),
			    $text{'view_growdesc'});
		if ($lvl == 5 && &get_mdadm_version() >= 3.1) {
			push(@grid, &ui_submit($text{'view_convert_to_raid6'}, "convert_to_raid6")." ".
                        &ui_select("ndisk_convert", undef, \@spares)." ".&ui_hidden("oldcount", $raidcnt),
                        $text{'view_convert_to_raid6desc'});
			}
		}
	if ($lvl == 6 && &get_mdadm_version() >= 3.1) {
		push(@grid, &ui_submit($text{'view_convert_to_raid5'}, "convert_to_raid5")." ".&ui_hidden("oldcount", $raidcnt),
                       	$text{'view_convert_to_raid5desc'});
		}
	}

if ($raid->{'active'} && !$st[2]) {
	# Show buttons for creating filesystems
	$fstype = $st[1] || "ext3";
	push(@grid, &ui_submit($text{'view_mkfs2'}, "mkfs")." ".
	    &ui_select("fs", $fstype,
			[ map { [ $_, $fdisk::text{"fs_".$_}." ($_)" ] }
			      &fdisk::supported_filesystems() ]),
	    $text{'view_mkfsdesc'});
	}

if (!@st) {
	# Show button for mounting filesystem
	push(@grid, &ui_submit($text{'view_newmount'}, "mount")." ".
		    &ui_textbox("newdir", undef, 20),
		    $text{'view_mountmsg'});

	# Show button for mounting as swap
	push(@grid, &ui_submit($text{'view_newmount2'}, "mountswap"),
		    $text{'view_mountmsg2'});
	}

if (!$st[2]) {
	push(@grid, &ui_submit($text{'view_delete'}, "delete"),
		    $text{'view_deletedesc'});
	}

if (@grid) {
	print &ui_grid_table(\@grid, 2, 100, [ "width=20% nowrap" ],
			     "cellpadding=5"),"<p>\n";
	}
if ($st[2]) {
	print "<b>$text{'view_cannot2'}</b><p>\n";
	}
print &ui_form_end();

&ui_print_footer("", $text{'index_return'});

# indevlist(device, &list)
sub indevlist
{
local $d;
foreach $d (@{$_[1]}) {
	return 1 if (&same_file($_[0], $d));
	}
return 0;
}


Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
CHANGELOG File 2.21 KB 0644
backup_config.pl File 721 B 0755
cgi_args.pl File 243 B 0755
config File 63 B 0644
config-debian-linux-3.1-ALL File 69 B 0644
config.info File 219 B 0644
config.info.bg File 382 B 0644
config.info.ca File 243 B 0644
config.info.cs File 232 B 0644
config.info.de File 247 B 0644
config.info.es File 265 B 0644
config.info.fr File 271 B 0644
config.info.hu File 0 B 0644
config.info.nl File 222 B 0644
config.info.no File 227 B 0644
config.info.pl File 76 B 0644
config.info.ru File 147 B 0644
config.info.sv File 76 B 0644
config.info.tr File 78 B 0644
config.info.uk File 140 B 0644
config.info.zh File 62 B 0644
config.info.zh_TW File 72 B 0644
create_raid.cgi File 2.75 KB 0755
index.cgi File 3.82 KB 0755
install_check.pl File 428 B 0755
log_parser.pl File 1.52 KB 0755
mkfs.cgi File 957 B 0755
module.info File 180 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 115 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 152 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 144 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 148 B 0644
module.info.ca File 117 B 0644
module.info.ca.auto File 13 B 0644
module.info.cs File 19 B 0644
module.info.cs.auto File 103 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 114 B 0644
module.info.de File 107 B 0644
module.info.de.auto File 13 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 181 B 0644
module.info.es File 22 B 0644
module.info.es.auto File 100 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 114 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 173 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 119 B 0644
module.info.fr File 0 B 0644
module.info.fr.auto File 131 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 142 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 115 B 0644
module.info.hu File 19 B 0644
module.info.hu.auto File 114 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 115 B 0644
module.info.ja File 20 B 0644
module.info.ja.auto File 127 B 0644
module.info.ko File 23 B 0644
module.info.ko.auto File 111 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 134 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 119 B 0644
module.info.ms File 98 B 0644
module.info.ms.auto File 13 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 111 B 0644
module.info.nl File 19 B 0644
module.info.nl.auto File 98 B 0644
module.info.no File 19 B 0644
module.info.no.auto File 103 B 0644
module.info.pl File 25 B 0644
module.info.pl.auto File 96 B 0644
module.info.pt File 22 B 0644
module.info.pt.auto File 103 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 134 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 119 B 0644
module.info.ru File 19 B 0644
module.info.ru.auto File 129 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 117 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 114 B 0644
module.info.sv File 19 B 0644
module.info.sv.auto File 97 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 162 B 0644
module.info.tr File 19 B 0644
module.info.tr.auto File 99 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 146 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 150 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 135 B 0644
module.info.zh File 27 B 0644
module.info.zh.auto File 96 B 0644
module.info.zh_TW File 30 B 0644
module.info.zh_TW.auto File 102 B 0644
raid-lib.pl File 22.25 KB 0755
raid_form.cgi File 3.88 KB 0755
save_mdadm.cgi File 939 B 0755
save_raid.cgi File 4.15 KB 0755
view_raid.cgi File 7.15 KB 0755