Handle hostnames with upper-case letters
[webmin.git] / lvm / save_pv.cgi
1 #!/usr/local/bin/perl
2 # save_pv.cgi
3 # Create, modify or delete a physical volume
4
5 require './lvm-lib.pl';
6 &ReadParse();
7
8 ($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups();
9 $vg || &error($text{'vg_egone'});
10 if ($in{'pv'}) {
11         ($pv) = grep { $_->{'name'} eq $in{'pv'} }
12                      &list_physical_volumes($in{'vg'});
13         $pv || &error($text{'pv_egone'});
14         }
15
16 if ($in{'confirm'}) {
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");
23         }
24 elsif ($in{'delete'}) {
25         # Ask the user if he is sure
26         &ui_print_header(undef, $text{'pv_delete'}, "");
27         print "<center>\n";
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'} ] ]);
34         print "</center>\n";
35         &ui_print_footer("index.cgi?mode=pvs", $text{'index_return'});
36         }
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");
44         }
45 else {
46         &error_setup($text{'pv_err'});
47         if (!$in{'pv'}) {
48                 # Add the physical volume
49                 $pv = { 'vg' => $in{'vg'},
50                         'alloc' => 'y' };
51                 if ($in{'device'}) {
52                         $pv->{'device'} = $in{'device'};
53                         }
54                 else {
55                         -r $in{'other'} || &error($text{'pv_eother'});
56                         $pv->{'device'} = $in{'other'};
57                         }
58                 $err = &create_physical_volume($pv, $in{'force'});
59                 &error("<pre>$err</pre>") if ($err);
60                 }
61
62         # Change the volume
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);
67                 }
68
69         &webmin_log($in{'pv'} ? "modify" : "create", "pv", $pv->{'device'},$pv);
70         &redirect("index.cgi?mode=pvs");
71         }
72