Handle hostnames with upper-case letters
[webmin.git] / raid / save_raid.cgi
1 #!/usr/local/bin/perl
2 # save_raid.cgi
3 # Activate, deactivate, delete or make a filesystem on a raid set
4
5 require './raid-lib.pl';
6 &ReadParse();
7 $conf = &get_raidtab();
8 $in{'idx'} eq '' && &error($text{'delete_eidx'});
9 $old = $conf->[$in{'idx'}];
10
11 if ($in{'delete'}) {
12         # Delete a RAID set
13         if (!$in{'confirm'}) {
14                 # Ask first!
15                 &ui_print_header(undef, $text{'delete_title'}, "");
16
17                 print "<center>\n";
18                 print &ui_form_start("save_raid.cgi");
19                 print &ui_hidden("delete", 1);
20                 print &ui_hidden("idx", $in{'idx'});
21                 print &text('delete_rusure', "<tt>$old->{'value'}</tt>",
22                             &nice_size($old->{'size'}*1024)),"<p>\n";
23                 print &ui_form_end([ [ "confirm", $text{'delete_ok'} ] ]);
24                 print "</center>\n";
25
26                 &ui_print_footer("", $text{'index_return'});
27                 }
28         else {
29                 # Really do it
30                 &lock_raid_files();
31                 &unmake_raid($old);
32                 &delete_raid($old);
33                 &unlock_raid_files();
34                 &webmin_log("delete", undef, $old->{'value'});
35                 &redirect("");
36                 }
37         }
38 elsif ($in{'mkfs'}) {
39         # Display form for making a filesystem
40         &ui_print_header(undef, $text{'mkfs_title'}, "");
41
42         print &text('mkfs_header2', "<tt>$old->{'value'}</tt>",
43                           $in{'fs'}),"<br>\n";
44         print &ui_form_start("mkfs.cgi");
45         print &ui_hidden("idx", $in{'idx'});
46         print &ui_hidden("fs", $in{'fs'});
47         print &ui_table_start($text{'mkfs_options'}, undef, 4);
48         &fdisk::mkfs_options($in{'fs'});
49         print &ui_table_end();
50         print &ui_form_end([ [ undef, $text{'create'} ] ]);
51
52         &ui_print_footer("", $text{'index_return'});
53         }
54 elsif ($in{'start'}) {
55         # Start raid device
56         &activate_raid($old);
57         &webmin_log("start", undef, $old->{'value'});
58         &redirect("");
59         }
60 elsif ($in{'stop'}) {
61         # Stop raid device
62         &deactivate_raid($old);
63         &webmin_log("stop", undef, $old->{'value'});
64         &redirect("");
65         }
66 elsif ($in{'add'}) {
67         # Add a disk to a RAID set
68         &lock_raid_files();
69         &add_partition($old, $in{'disk'});
70         &unlock_raid_files();
71         &webmin_log("add", undef, $old->{'value'}, { 'disk' => $in{'disk'} } );
72         &redirect("");
73         }
74 elsif ($in{'grow'}) {
75         # Grow the array
76         &lock_raid_files();
77         &grow($old, $in{'ndisk_grow'});
78         &unlock_raid_files();
79         &webmin_log("grow", undef, $old->{'value'}, { 'disk' => $in{'ndisk_grow'} } );
80         &redirect("");
81         }
82 elsif ($in{'remove'}) {
83         # Remove a disk from a RAID set
84         &lock_raid_files();
85         &remove_partition($old, $in{'rdisk'});
86         &unlock_raid_files();
87         &webmin_log("remove", undef, $old->{'value'}, { 'disk' => $in{'rdisk'} } );
88         &redirect("");
89         }
90 elsif ($in{'remove_det'}) {
91         # Remove detached disk(s) from a RAID set
92         &lock_raid_files();
93         &remove_detached($old);
94         &unlock_raid_files();
95         &redirect("");
96         }
97 elsif ($in{'convert_to_raid6'}) {
98         # Convert RAID level to RAID6
99         &lock_raid_files();
100         &convert_raid($old, $in{'oldcount'}, $in{'ndisk_convert'}, 6);
101         &unlock_raid_files();
102         &webmin_log("convert_to_raid6", undef, $old->{'value'}, { 'disk' => $in{'ndisk_convert'} } );
103         &redirect("");
104         }
105 elsif ($in{'convert_to_raid5'}) {
106         # Convert RAID level to RAID5
107         &lock_raid_files();
108         &convert_raid($old, $in{'oldcount'}, undef, 5);
109         &unlock_raid_files();
110         &webmin_log("convert_to_raid5", undef, $old->{'value'}, undef );
111         &redirect("");
112         }
113 elsif ($in{'mount'} || $in{'mountswap'}) {
114         # Re-direct to mount module
115         $type = $in{'mountswap'} ? "swap" :
116                 $config{'lasttype_'.$old->{'value'}} || "ext2";
117         &redirect("../mount/edit_mount.cgi?newdev=$old->{'value'}&".
118                   "newdir=".&urlize($in{'newdir'})."&".
119                   "type=".$type);
120         }
121