Current File : //usr/share/webmin/lvm/edit_pv.cgi |
#!/usr/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_return2'});