3 # Reload the list of packages from all managed hosts
5 require './cluster-software-lib.pl';
6 &header($text{'refresh_title'}, "");
10 print "<b>$text{'refresh_header'}</b><p>\n";
11 @hosts = &list_software_hosts();
12 @servers = &list_servers();
14 local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
17 &remote_foreign_require($s->{'host'}, "software",
19 local $gconfig = &remote_foreign_config($s->{'host'}, undef);
20 foreach $g ('os_type', 'os_version',
21 'real_os_type', 'real_os_version') {
22 $h->{$g} = $gconfig{$g};
24 local @old = map { $_->{'name'} } @{$h->{'packages'}};
25 undef($h->{'packages'});
26 local $n = &remote_foreign_call($s->{'host'}, "software",
28 local $packages = &remote_eval($s->{'host'}, "software",
31 for($i=0; $i<$n; $i++) {
32 push(@{$h->{'packages'}},
33 { 'name' => $packages->{$i,'name'},
34 'class' => $packages->{$i,'class'},
35 'desc' => $packages->{$i,'desc'} });
36 $idx = &indexof($packages->{$i,'name'}, @old);
38 push(@added, $packages->{$i,'name'});
41 splice(@old, $idx, 1);
44 &save_software_host($h);
45 local $d = $s->{'desc'} ? $s->{'desc'} : $s->{'host'};
47 print &text('refresh_1', $d,
48 join(" ", @added),join(" ", @old)),"<br>\n";
51 print &text('refresh_2', $d,
52 join(" ", @added)),"<br>\n";
55 print &text('refresh_3', $d, join(" ", @old)),"<br>\n";
58 print &text('refresh_4', $d,"<br>\n";
62 # remove from managed list
63 #&delete_software_host($h);
64 print &text('refresh_del', $h->{'id'}),"<br>\n";
67 print "<p><b>$text{'refresh_done'}</b><p>\n";
70 &footer("", $text{'index_return'});