Handle hostnames with upper-case letters
[webmin.git] / lvm / edit_pv.cgi
1 #!/usr/local/bin/perl
2 # edit_pv.cgi
3 # Display a form for editing or creating a physical volume
4
5 require './lvm-lib.pl';
6 &ReadParse();
7 ($vg) = grep { $_->{'name'} eq $in{'vg'} } &list_volume_groups();
8 $vg || &error($text{'vg_egone'});
9
10 $vgdesc = &text('pv_vg', $vg->{'name'});
11 if ($in{'pv'}) {
12         @pvs = &list_physical_volumes($in{'vg'});
13         ($pv) = grep { $_->{'name'} eq $in{'pv'} } @pvs;
14         $pv || &error($text{'pv_egone'});
15         &ui_print_header($vgdesc, $text{'pv_edit'}, "");
16         }
17 else {
18         &ui_print_header($vgdesc, $text{'pv_create'}, "");
19         $pv = { 'alloc' => 'y' };
20         }
21
22 print &ui_form_start("save_pv.cgi");
23 print &ui_hidden("vg", $in{'vg'});
24 print &ui_hidden("pv", $in{'pv'});
25 print &ui_table_start($text{'pv_header'}, "width=100%", 4);
26
27 # Device file
28 if ($in{'pv'}) {
29         print &ui_table_row($text{'pv_device'},
30                 &mount::device_name($pv->{'device'}), 3);
31         }
32 else {
33         print &ui_table_row($text{'pv_device'}, &device_input(), 3);
34         }
35
36 # Enabled for allocation
37 print &ui_table_row($text{'pv_alloc'},
38         &ui_radio('alloc', $pv->{'alloc'}, [ [ 'y', $text{'yes'} ],
39                                              [ 'n', $text{'no'} ] ]));
40
41 if ($in{'pv'}) {
42         # Details of existing PV
43         print &ui_table_row($text{'pv_size'},
44                 &nice_size($pv->{'size'}*1024));
45
46         print &ui_table_row($text{'pv_petotal'},
47                 &text('lv_petotals', $pv->{'pe_alloc'}, $pv->{'pe_total'}));
48
49         print &ui_table_row($text{'pv_pesize'},
50                 &nice_size($pv->{'pe_size'}*1024));
51
52         print &ui_table_row($text{'pv_petotal2'},
53                 &text('lv_petotals', &nice_size($pv->{'pe_alloc'}*$pv->{'pe_size'}*1024), &nice_size($pv->{'pe_total'}*$pv->{'pe_size'}*1024)));
54
55         # Used by logical volumes
56         @lvinfo = &get_physical_volume_usage($pv);
57         if (@lvinfo) {
58                 @lvs = &list_logical_volumes($in{'vg'});
59                 foreach $l (@lvinfo) {
60                         ($lv) = grep { $_->{'name'} eq $l->[0] } @lvs;
61                         push(@lvlist, "<a href='edit_lv.cgi?vg=$in{'vg'}&lv=$lv->{'name'}'>$lv->{'name'}</a> ".&nice_size($l->[1]*$pv->{'pe_size'}*1024));
62                         }
63                 print &ui_table_row($text{'pv_lvs'}, join(" , ", @lvlist), 3);
64                 }
65         }
66 else {
67         # Force creation?
68         print &ui_table_row($text{'pv_force'},
69                 &ui_yesno_radio('force', 0), 3);
70         }
71
72 print &ui_table_end();
73 if ($in{'pv'}) {
74         print &ui_form_end([ [ undef, $text{'save'} ],
75                              [ 'resize', $text{'pv_resize'} ],
76                              @pvs > 1 ? ( [ 'delete', $text{'pv_delete2'} ] )
77                                       : ( ) ]);
78         }
79 else {
80         print &ui_form_end([ [ undef, $text{'pv_create2'} ] ]);
81         }
82
83 &ui_print_footer("index.cgi?mode=pvs", $text{'index_return'});
84