3 # Create, update or delete a volume group
5 require './lvm-lib.pl';
9 ($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups();
10 $vg || &error($text{'vg_egone'});
14 # Delete the volume group
15 &error_setup($text{'vg_err2'});
16 $err = &delete_volume_group($vg);
17 &error("<pre>$err</pre>") if ($err);
18 &webmin_log("delete", "vg", $in{'vg'}, $vg);
21 elsif ($in{'delete'}) {
22 # Ask the user if he is sure
23 &ui_print_header(undef, $text{'vg_delete'}, "");
24 @lvs = &list_logical_volumes($in{'vg'});
26 print "<p><b>",&text('vg_cannot', scalar(@lvs)),"</b> <p>\n";
30 print &ui_form_start("save_vg.cgi");
31 print &ui_hidden("vg", $in{'vg'});
32 print "<b>",&text('vg_rusure', $vg->{'name'}),"</b><p>\n";
33 print &ui_form_end([ [ 'confirm', $text{'vg_deleteok'} ] ]);
36 &ui_print_footer("", $text{'index_return'});
39 &error_setup($text{'vg_err'});
40 $in{'name'} =~ /^[A-Za-z0-9\.\-\_]+$/ || &error($text{'vg_ename'});
42 # Add the volume group
43 $vg = { 'name' => $in{'name'} };
46 $device = $in{'device'};
49 -r $in{'other'} || &error($text{'pv_eother'});
50 $device = $in{'other'};
52 if (!$in{'pesize_def'}) {
53 $in{'pesize'} =~ /^\d+$/ || &error($text{'vg_epesize'});
54 $vg->{'pe_size'} = $in{'pesize'};
56 $err = &create_volume_group($vg, $device);
57 &error("<pre>$err</pre>") if ($err);
58 &webmin_log("create", "vg", $in{'name'}, $vg);
61 # Rename the volume group
62 if ($vg->{'name'} ne $in{'name'}) {
63 $err = &rename_volume_group($vg, $in{'name'});
64 &error("<pre>$err</pre>") if ($err);
65 $vg->{'name'} = $in{'name'};
67 &webmin_log("modify", "vg", $in{'vg'}, $vg);
69 &redirect("index.cgi?mode=vgs");