#!/usr/bin/perl # Create a RAID logical volume require './lvm-lib.pl'; &error_setup($text{'raid_err'}); &ReadParse(); ($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups(); $vg || &error($text{'vg_egone'}); # Parse and validate inputs &error_setup($text{'raid_err'}); $in{'name'} =~ /^[A-Za-z0-9\.\-\_]+$/ || &error($text{'lv_ename'}); ($same) = grep { $_->{'name'} eq $in{'name'} } &list_logical_volumes($in{'vg'}); $same && &error($text{'lv_esame'}); if ($in{'size_mode'} == 0) { # Absolute size $in{'size'} =~ /^\d+$/ || &error($text{'lv_esize'}); $size = $in{'size'}; if (defined($in{'size_units'})) { # Convert selected units to kB $size *= $in{'size_units'}/1024; } $sizeof = undef; } elsif ($in{'size_mode'} == 1) { # Size of VG $in{'vgsize'} =~ /^\d+$/ && $in{'vgsize'} > 0 && $in{'vgsize'} <= 100 || &error($text{'lv_evgsize'}); $size = $in{'vgsize'}; $sizeof = 'VG'; } elsif ($in{'size_mode'} == 2) { # Size of free space if (!$in{'lv'}) { $in{'freesize'} =~ /^\d+$/ && $in{'freesize'} > 0 && $in{'freesize'} <= 100 || &error($text{'lv_efreesize'}); } $size = $in{'freesize'}; $sizeof = 'FREE'; } elsif ($in{'size_mode'} == 3) { # Size of some PV $in{'pvsize'} =~ /^\d+$/ && $in{'pvsize'} > 0 && $in{'pvsize'} <= 100 || &error($text{'lv_epvsize'}); $size = $in{'pvsize'}; $sizeof = $in{'pvof'}; } if ($in{'raid_mode'} eq 'raid0') { $in{'raid_stripe0'} =~ /^\d+$/ && $in{'raid_stripe0'} >= 2 || &error($text{'raid_estripe0'}); $stripes = $in{'raid_stripe0'}; } elsif ($in{'raid_mode'} eq 'raid1') { $in{'raid_mirror1'} =~ /^\d+$/ && $in{'raid_mirror1'} >= 1 || &error($text{'raid_emirror1'}); $mirrors = $in{'raid_mirror1'}; } elsif ($in{'raid_mode'} eq 'raid4') { $in{'raid_stripe4'} =~ /^\d+$/ && $in{'raid_stripe4'} >= 2 || &error($text{'raid_estripe4'}); $stripes = $in{'raid_stripe4'}; } elsif ($in{'raid_mode'} eq 'raid5') { $in{'raid_stripe5'} =~ /^\d+$/ && $in{'raid_stripe5'} >= 2 || &error($text{'raid_estripe5'}); $stripes = $in{'raid_stripe5'}; } elsif ($in{'raid_mode'} eq 'raid6') { $in{'raid_stripe6'} =~ /^\d+$/ && $in{'raid_stripe6'} >= 2 || &error($text{'raid_estripe6'}); $stripes = $in{'raid_stripe6'}; } elsif ($in{'raid_mode'} eq 'raid10') { $in{'raid_stripe10'} =~ /^\d+$/ && $in{'raid_stripe10'} >= 2 || &error($text{'raid_estripe10'}); $stripes = $in{'raid_stripe10'}; } $mirrors || $stripes || &error($text{'raid_eeither'}); # Create the LV $lv = { }; $lv->{'vg'} = $in{'vg'}; $lv->{'name'} = $in{'name'}; $lv->{'size'} = $size; $lv->{'size_of'} = $sizeof; $lv->{'raid'} = $in{'raid_mode'}; $lv->{'mirrors'} = $mirrors; $lv->{'stripes'} = $stripes; $lv->{'perm'} = $in{'perm'}; $lv->{'alloc'} = $in{'alloc'}; $lv->{'readahead'} = $in{'readahead'}; $err = &create_raid_volume($lv); &error($err) if ($err); &webmin_log("raid", "lv", $in{'name'}, $lv); &redirect("index.cgi?mode=lvs");
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 3.07 KB | 0644 |
|
backup_config.pl | File | 599 B | 0744 |
|
cgi_args.pl | File | 756 B | 0755 |
|
config | File | 40 B | 0644 |
|
config.info | File | 98 B | 0644 |
|
config.info.ca | File | 118 B | 0644 |
|
config.info.de | File | 110 B | 0644 |
|
config.info.fr | File | 123 B | 0644 |
|
config.info.ms | File | 66 B | 0644 |
|
config.info.nl | File | 63 B | 0644 |
|
config.info.no | File | 58 B | 0644 |
|
edit_lv.cgi | File | 10.44 KB | 0755 |
|
edit_pv.cgi | File | 2.48 KB | 0755 |
|
edit_vg.cgi | File | 1.5 KB | 0755 |
|
feedback_files.pl | File | 155 B | 0755 |
|
index.cgi | File | 7.42 KB | 0755 |
|
init.cgi | File | 448 B | 0755 |
|
install_check.pl | File | 517 B | 0755 |
|
log_parser.pl | File | 585 B | 0755 |
|
lvm-lib.pl | File | 26.52 KB | 0755 |
|
mkfs.cgi | File | 773 B | 0755 |
|
mkfs_form.cgi | File | 715 B | 0755 |
|
module.info | File | 203 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 128 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 253 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 203 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 248 B | 0644 |
|
module.info.ca | File | 123 B | 0644 |
|
module.info.ca.auto | File | 12 B | 0644 |
|
module.info.cs | File | 35 B | 0644 |
|
module.info.cs.auto | File | 107 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 135 B | 0644 |
|
module.info.de | File | 125 B | 0644 |
|
module.info.de.auto | File | 12 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 233 B | 0644 |
|
module.info.es | File | 37 B | 0644 |
|
module.info.es.auto | File | 114 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 134 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 167 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 143 B | 0644 |
|
module.info.fr | File | 0 B | 0644 |
|
module.info.fr.auto | File | 155 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 180 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 144 B | 0644 |
|
module.info.hu | File | 0 B | 0644 |
|
module.info.hu.auto | File | 159 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 134 B | 0644 |
|
module.info.ja | File | 0 B | 0644 |
|
module.info.ja.auto | File | 178 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 143 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 131 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 142 B | 0644 |
|
module.info.ms | File | 130 B | 0644 |
|
module.info.ms.auto | File | 12 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 142 B | 0644 |
|
module.info.nl | File | 34 B | 0644 |
|
module.info.nl.auto | File | 104 B | 0644 |
|
module.info.no | File | 36 B | 0644 |
|
module.info.no.auto | File | 99 B | 0644 |
|
module.info.pl | File | 0 B | 0644 |
|
module.info.pl.auto | File | 150 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 145 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 154 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 143 B | 0644 |
|
module.info.ru | File | 65 B | 0644 |
|
module.info.ru.auto | File | 149 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 147 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 149 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 132 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 272 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 155 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 213 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 188 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 176 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 100 B | 0644 |
|
module.info.zh_TW | File | 30 B | 0644 |
|
module.info.zh_TW.auto | File | 82 B | 0644 |
|
prefs.info | File | 18 B | 0644 |
|
pvmove.cgi | File | 923 B | 0755 |
|
raid_create.cgi | File | 2.85 KB | 0755 |
|
raid_form.cgi | File | 2.3 KB | 0755 |
|
save_lv.cgi | File | 7.47 KB | 0755 |
|
save_pv.cgi | File | 1.95 KB | 0755 |
|
save_vg.cgi | File | 1.85 KB | 0755 |
|
thin_create.cgi | File | 913 B | 0755 |
|
thin_form.cgi | File | 1.13 KB | 0755 |
|