Handle hostnames with upper-case letters
[webmin.git] / cluster-software / refresh.cgi
1 #!/usr/local/bin/perl
2 # refresh.cgi
3 # Reload the list of packages from all managed hosts
4
5 require './cluster-software-lib.pl';
6 &ReadParse();
7 &ui_print_header(undef, $text{'refresh_title'}, "");
8 $| = 1;
9
10 # Work out which hosts to refresh
11 @hosts = &list_software_hosts();
12 @servers = &list_servers();
13 if (defined($in{'id'})) {
14         @hosts = grep { $_->{'id'} == $in{'id'} } @hosts;
15         local ($s) = grep { $_->{'id'} == $hosts[0]->{'id'} } @servers;
16         print "<b>",&text('refresh_header5', undef,
17                           &server_name($s)),"</b><p>\n";
18         }
19 else {
20         @hosts = &create_on_parse("refresh_header");
21         }
22
23 # Do the refresh
24 @results = &refresh_packages(\@hosts);
25
26 # Show the user
27 $p = 0;
28 foreach $h (@hosts) {
29         local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
30         local $d = $s->{'desc'} || $s->{'realhost'} || $s->{'host'};
31         local $rv = $results[$p];
32
33         if ($rv && ref($rv)) {
34                 @added = @{$rv->[0]};
35                 @old = @{$rv->[1]};
36                 if (@added && @old) {
37                         print &text('refresh_1', $d,
38                                     join(" ", @added),join(" ", @old)),"<br>\n";
39                         }
40                 elsif (@added) {
41                         print &text('refresh_2', $d,
42                                     join(" ", @added)),"<br>\n";
43                         }
44                 elsif (@old) {
45                         print &text('refresh_3', $d, join(" ", @old)),"<br>\n";
46                         }
47                 else {
48                         print &text('refresh_4', $d),"<br>\n";
49                         }
50                 }
51         elsif ($rv) {
52                 print &text('refresh_failed', $d, $rv),"<br>\n";
53                 }
54         else {
55                 print &text('refresh_del', $h->{'id'}),"<br>\n";
56                 }
57
58         $p++;
59         }
60
61 print "<p><b>$text{'refresh_done'}</b><p>\n";
62
63 &remote_finished();
64 if (defined($in{'id'})) {
65         &ui_print_footer("edit_host.cgi?id=$in{'id'}", $text{'host_return'},
66                          "", $text{'index_return'});
67         }
68 else {
69         &ui_print_footer("", $text{'index_return'});
70         }
71