3 # Create, modify or delete a physical volume
5 require './lvm-lib.pl';
8 ($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups();
9 $vg || &error($text{'vg_egone'});
11 ($pv) = grep { $_->{'name'} eq $in{'pv'} }
12 &list_physical_volumes($in{'vg'});
13 $pv || &error($text{'pv_egone'});
17 # Delete the physical volume
18 &error_setup($text{'pv_err2'});
19 $err = &delete_physical_volume($pv);
20 &error("<pre>$err</pre>") if ($err);
21 &webmin_log("delete", "pv", $in{'pv'}, $pv);
22 &redirect("index.cgi?mode=pvs");
24 elsif ($in{'delete'}) {
25 # Ask the user if he is sure
26 &ui_print_header(undef, $text{'pv_delete'}, "");
28 print &ui_form_start("save_pv.cgi");
29 print &ui_hidden("vg", $in{'vg'});
30 print &ui_hidden("pv", $in{'pv'});
31 print "<b>",&text('pv_rusure',
32 "<tt>$pv->{'device'}</tt>"),"</b><p>\n";
33 print &ui_form_end([ [ 'confirm', $text{'pv_deleteok'} ] ]);
35 &ui_print_footer("index.cgi?mode=pvs", $text{'index_return'});
37 elsif ($in{'resize'}) {
38 # Scale up to match device
39 &error_setup($text{'pv_err3'});
40 $err = &resize_physical_volume($pv);
41 &error("<pre>$err</pre>") if ($err);
42 &webmin_log("resize", "pv", $in{'pv'}, $pv);
43 &redirect("index.cgi?mode=pvs");
46 &error_setup($text{'pv_err'});
48 # Add the physical volume
49 $pv = { 'vg' => $in{'vg'},
52 $pv->{'device'} = $in{'device'};
55 -r $in{'other'} || &error($text{'pv_eother'});
56 $pv->{'device'} = $in{'other'};
58 $err = &create_physical_volume($pv, $in{'force'});
59 &error("<pre>$err</pre>") if ($err);
63 if ($pv->{'alloc'} ne $in{'alloc'}) {
64 $pv->{'alloc'} = $in{'alloc'};
65 $err = &change_physical_volume($pv);
66 &error("<pre>$err</pre>") if ($err);
69 &webmin_log($in{'pv'} ? "modify" : "create", "pv", $pv->{'device'},$pv);
70 &redirect("index.cgi?mode=pvs");