#!/usr/local/bin/perl # save_pv.cgi # Create, modify or delete a physical volume require './lvm-lib.pl'; &ReadParse(); ($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups(); $vg || &error($text{'vg_egone'}); if ($in{'pv'}) { ($pv) = grep { $_->{'name'} eq $in{'pv'} } &list_physical_volumes($in{'vg'}); $pv || &error($text{'pv_egone'}); } if ($in{'confirm'}) { # Delete the physical volume &error_setup($text{'pv_err2'}); $err = &delete_physical_volume($pv); &error("
$err
") if ($err); &webmin_log("delete", "pv", $in{'pv'}, $pv); &redirect("index.cgi?mode=pvs"); } elsif ($in{'delete'}) { # Ask the user if he is sure &ui_print_header(undef, $text{'pv_delete'}, ""); print "
\n"; print &ui_form_start("save_pv.cgi"); print &ui_hidden("vg", $in{'vg'}); print &ui_hidden("pv", $in{'pv'}); print "",&text('pv_rusure', "$pv->{'device'}"),"

\n"; print &ui_form_end([ [ 'confirm', $text{'pv_deleteok'} ] ]); print "

\n"; &ui_print_footer("index.cgi?mode=pvs", $text{'index_return'}); } elsif ($in{'resize'}) { # Scale up to match device &error_setup($text{'pv_err3'}); $err = &resize_physical_volume($pv); &error("
$err
") if ($err); &webmin_log("resize", "pv", $in{'pv'}, $pv); &redirect("index.cgi?mode=pvs"); } else { &error_setup($text{'pv_err'}); if (!$in{'pv'}) { # Add the physical volume $pv = { 'vg' => $in{'vg'}, 'alloc' => 'y' }; if ($in{'device'}) { $pv->{'device'} = $in{'device'}; } else { -r $in{'other'} || &error($text{'pv_eother'}); $pv->{'device'} = $in{'other'}; } $err = &create_physical_volume($pv, $in{'force'}); &error("
$err
") if ($err); } # Change the volume if ($pv->{'alloc'} ne $in{'alloc'}) { $pv->{'alloc'} = $in{'alloc'}; $err = &change_physical_volume($pv); &error("
$err
") if ($err); } &webmin_log($in{'pv'} ? "modify" : "create", "pv", $pv->{'device'},$pv); &redirect("index.cgi?mode=pvs"); }