mirror of
https://github.com/webmin/webmin.git
synced 2025-07-21 23:40:34 +00:00
94 lines
2.5 KiB
Perl
Executable File
94 lines
2.5 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# edit_pv.cgi
|
|
# Display a form for editing or creating a physical volume
|
|
|
|
require './lvm-lib.pl';
|
|
&ReadParse();
|
|
($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups();
|
|
$vg || &error($text{'vg_egone'});
|
|
|
|
$vgdesc = &text('pv_vg', $vg->{'name'});
|
|
if ($in{'pv'}) {
|
|
@pvs = &list_physical_volumes($in{'vg'});
|
|
($pv) = grep { $_->{'name'} eq $in{'pv'} } @pvs;
|
|
$pv || &error($text{'pv_egone'});
|
|
&ui_print_header($vgdesc, $text{'pv_edit'}, "");
|
|
}
|
|
else {
|
|
&ui_print_header($vgdesc, $text{'pv_create'}, "");
|
|
$pv = { 'alloc' => 'y' };
|
|
}
|
|
|
|
print &ui_form_start("save_pv.cgi");
|
|
print &ui_hidden("vg", $in{'vg'});
|
|
print &ui_hidden("pv", $in{'pv'});
|
|
print &ui_table_start($text{'pv_header'}, "width=100%", 4);
|
|
|
|
# Device file
|
|
if ($in{'pv'}) {
|
|
print &ui_table_row($text{'pv_device'},
|
|
&mount::device_name($pv->{'device'}), 3);
|
|
}
|
|
else {
|
|
print &ui_table_row($text{'pv_device'}, &device_input(), 3);
|
|
}
|
|
|
|
# Enabled for allocation
|
|
print &ui_table_row($text{'pv_alloc'},
|
|
&ui_radio('alloc', $pv->{'alloc'}, [ [ 'y', $text{'yes'} ],
|
|
[ 'n', $text{'no'} ] ]));
|
|
|
|
if ($in{'pv'}) {
|
|
# Details of existing PV
|
|
print &ui_table_row($text{'pv_size'},
|
|
&nice_size($pv->{'size'}*1024));
|
|
|
|
print &ui_table_row($text{'pv_petotal'},
|
|
&text('lv_petotals', $pv->{'pe_alloc'}, $pv->{'pe_total'}));
|
|
|
|
print &ui_table_row($text{'pv_pesize'},
|
|
&nice_size($pv->{'pe_size'}*1024));
|
|
|
|
print &ui_table_row($text{'pv_petotal2'},
|
|
&text('lv_petotals', &nice_size($pv->{'pe_alloc'}*$pv->{'pe_size'}*1024), &nice_size($pv->{'pe_total'}*$pv->{'pe_size'}*1024)));
|
|
|
|
# Used by logical volumes
|
|
@lvinfo = &get_physical_volume_usage($pv);
|
|
if (@lvinfo) {
|
|
@lvs = &list_logical_volumes($in{'vg'});
|
|
foreach $l (@lvinfo) {
|
|
($lv) = grep { $_->{'name'} eq $l->[0] } @lvs;
|
|
$nice = &nice_size($l->[1]*$pv->{'pe_size'}*1024);
|
|
if ($lv) {
|
|
push(@lvlist,
|
|
"<a href='edit_lv.cgi?vg=$in{'vg'}&".
|
|
"lv=$lv->{'name'}'>$lv->{'name'}</a> ".$nice);
|
|
}
|
|
else {
|
|
push(@lvlist, $l->[0]." ".$nice);
|
|
}
|
|
}
|
|
print &ui_table_row($text{'pv_lvs'},
|
|
&ui_grid_table(\@lvlist, 4), 3);
|
|
}
|
|
}
|
|
else {
|
|
# Force creation?
|
|
print &ui_table_row($text{'pv_force'},
|
|
&ui_yesno_radio('force', 0), 3);
|
|
}
|
|
|
|
print &ui_table_end();
|
|
if ($in{'pv'}) {
|
|
print &ui_form_end([ [ undef, $text{'save'} ],
|
|
[ 'resize', $text{'pv_resize'} ],
|
|
@pvs > 1 ? ( [ 'delete', $text{'pv_delete2'} ] )
|
|
: ( ) ]);
|
|
}
|
|
else {
|
|
print &ui_form_end([ [ undef, $text{'pv_create2'} ] ]);
|
|
}
|
|
|
|
&ui_print_footer("index.cgi?mode=pvs", $text{'index_return'});
|
|
|