Handle hostnames with upper-case letters
[webmin.git] / cluster-software / delete_pack.cgi.bak
1 #!/usr/local/bin/perl
2 # delete_pack.cgi
3 # Ask if the user wants to delete a package, and if so do it
4
5 require './cluster-software-lib.pl';
6 &ReadParse();
7
8 @servers = &list_servers();
9 if ($in{'server'} < 0) {
10         # Find servers that have the package
11         @hosts = &list_software_hosts();
12         foreach $h (@hosts) {
13                 foreach $p (@{$h->{'packages'}}) {
14                         if ($p->{'name'} eq $in{'package'}) {
15                                 local ($s) = grep { $_->{'id'} == $h->{'id'} }
16                                                   @servers;
17                                 push(@got, $s);
18                                 last;
19                                 }
20                         }
21                 }
22         $s = $got[0];
23         }
24 else {
25         ($s) = grep { $_->{'id'} == $in{'server'} } @servers;
26         @got = ( $s );
27         }
28 &remote_foreign_require($s->{'host'}, "software", "software-lib.pl");
29
30 &header($text{'delete_title'}, "");
31 print "<hr>\n";
32 if ($in{'sure'}) {
33         # do the deletion
34         print "<b>",&text('delete_header', $in{'package'}),"</b><p>\n";
35         foreach $g (@got) {
36                 &remote_foreign_require($g->{'host'}, "software", "software-lib.pl")
37                         if ($s ne $g);
38                 local $error = &remote_foreign_call($g->{'host'}, "software",
39                                                     "delete_package", $in{'package'});
40                 if ($error) {
41                         print &text('delete_error', $g->{'host'}, $error),"<br>\n";
42                         }
43                 else {
44                         print &text('delete_success', $g->{'host'}),"<br>\n";
45                         }
46                 }
47         print "<p><b>$text{'delete_done'}</b><br>\n";
48         }
49 else {
50         # Ask if the user is sure..
51         $n = &remote_foreign_call($s->{'host'}, "software", "check_files",
52                                   $in{'package'});
53         $files = &remote_eval($s->{'host'}, "software", "\\%files");
54         $sz = 0;
55         for($i=0; $i<$n; $i++) {
56                 if ($files->{$i,'type'} == 0) { $sz += $files->{$i,'size'}; }
57                 }
58         print "<center>\n";
59         if ($in{'server'} < 0) {
60                 print &text('delete_rusure', "<b>$in{'package'}</b>", $n, $sz),"<br>\n";
61                 }
62         else {
63                 print &text('delete_rusure2', "<b>$in{'package'}</b>", $n, $sz,
64                             $s->{'desc'} ? $s->{'desc'} : $s->{'host'}),"<br>\n";
65                 }
66         print "<form action=delete_pack.cgi>\n";
67         print "<input type=hidden name=package value=\"$in{'package'}\">\n";
68         print "<input type=hidden name=server value=\"$in{'server'}\">\n";
69         print "<input type=hidden name=sure value=1>\n";
70         print "<input type=hidden name=search value=\"$in{'search'}\">\n";
71         print "<input type=submit value=\"$text{'delete_ok'}\"></center>\n";
72         print "</form>\n";
73         }
74
75 print "<hr>\n";
76 &footer("edit_pack.cgi?search=$in{'search'}&package=".&urlize($p),
77         $text{'edit_return'});