Handle hostnames with upper-case letters
[webmin.git] / lvm / save_vg.cgi
1 #!/usr/local/bin/perl
2 # save_vg.cgi
3 # Create, update or delete a volume group
4
5 require './lvm-lib.pl';
6 &ReadParse();
7
8 if ($in{'vg'}) {
9         ($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups();
10         $vg || &error($text{'vg_egone'});
11         }
12
13 if ($in{'confirm'}) {
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);
19         &redirect("");
20         }
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'});
25         if (@lvs) {
26                 print "<p><b>",&text('vg_cannot', scalar(@lvs)),"</b> <p>\n";
27                 }
28         else {
29                 print "<center>\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'} ] ]);
34                 print "</center>\n";
35                 }
36         &ui_print_footer("", $text{'index_return'});
37         }
38 else {
39         &error_setup($text{'vg_err'});
40         $in{'name'} =~ /^[A-Za-z0-9\.\-\_]+$/ || &error($text{'vg_ename'});
41         if (!$in{'vg'}) {
42                 # Add the volume group
43                 $vg = { 'name' => $in{'name'} };
44                 local $device;
45                 if ($in{'device'}) {
46                         $device = $in{'device'};
47                         }
48                 else {
49                         -r $in{'other'} || &error($text{'pv_eother'});
50                         $device = $in{'other'};
51                         }
52                 if (!$in{'pesize_def'}) {
53                         $in{'pesize'} =~ /^\d+$/ || &error($text{'vg_epesize'});
54                         $vg->{'pe_size'} = $in{'pesize'};
55                         }
56                 $err = &create_volume_group($vg, $device);
57                 &error("<pre>$err</pre>") if ($err);
58                 &webmin_log("create", "vg", $in{'name'}, $vg);
59                 }
60         else {
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'};
66                         }
67                 &webmin_log("modify", "vg", $in{'vg'}, $vg);
68                 }
69         &redirect("index.cgi?mode=vgs");
70         }
71