#!/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; push(@lvlist, "{'name'}'>$lv->{'name'} ".&nice_size($l->[1]*$pv->{'pe_size'}*1024)); } print &ui_table_row($text{'pv_lvs'}, join(" , ", @lvlist), 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'});