3 # Reload the list of modules from all managed hosts
5 require './cluster-usermin-lib.pl';
7 &ui_print_header(undef, $text{'refresh_title'}, "");
10 # Setup error handler for down hosts
13 $ref_error_msg = join("", @_);
15 &remote_error_setup(\&ref_error);
17 # Work out which hosts
18 @hosts = &list_usermin_hosts();
19 @servers = &list_servers();
20 if (defined($in{'id'})) {
21 @hosts = grep { $_->{'id'} == $in{'id'} } @hosts;
22 local ($s) = grep { $_->{'id'} == $hosts[0]->{'id'} } @servers;
23 print "<b>",&text('refresh_header5', undef,
24 &server_name($s)),"</b><p>\n";
27 @hosts = &create_on_parse("refresh_header");
28 #print "<b>$text{'refresh_header'}</b><p>\n";
32 local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
34 local ($rh = "READ$p", $wh = "WRITE$p");
40 &remote_foreign_require($s->{'host'}, "usermin",
44 print $wh &serialise_variable($ref_error_msg);
47 local $gconfig = &remote_foreign_config($s->{'host'},
49 foreach $g ('os_type', 'os_version',
50 'real_os_type', 'real_os_version') {
51 $h->{$g} = $gconfig->{$g};
53 $h->{'version'} = &remote_foreign_call($s->{'host'},
54 "usermin", "get_usermin_version");
56 # Refresh modules and themes
57 local @old = map { $_->{'dir'} } ( @{$h->{'modules'}},
59 undef($h->{'modules'});
60 local @mods = &remote_foreign_call($s->{'host'},
61 "usermin", "list_modules");
62 @mods = grep { !$_->{'clone'} } @mods;
63 local @themes = &remote_foreign_call($s->{'host'},
64 "usermin", "list_themes");
66 foreach $m (@mods, @themes) {
67 $idx = &indexof($m->{'dir'}, @old);
69 push(@added, $m->{'dir'});
72 splice(@old, $idx, 1);
75 $h->{'modules'} = \@mods;
76 $h->{'themes'} = \@themes;
78 &save_usermin_host($h);
79 $rv = [ \@added, \@old, $ud, $gd ];
82 # remove from managed list
83 &delete_usermin_host($h);
86 print $wh &serialise_variable($rv);
97 local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
98 local $d = &server_name($s);
101 local $rv = &unserialise_variable($line);
104 if ($rv && ref($rv)) {
105 @added = @{$rv->[0]};
107 if (@added && @old) {
108 print &text('refresh_1', $d,
109 join(" ", @added),join(" ", @old)),"\n";
112 print &text('refresh_2', $d,
113 join(" ", @added)),"\n";
116 print &text('refresh_3', $d, join(" ", @old)),"\n";
119 print &text('refresh_4', $d),"\n";
124 print &text('refresh_failed', $d, $rv),"<br>\n";
127 print &text('refresh_del', $h->{'id'}),"<br>\n";
133 print "<p><b>$text{'refresh_done'}</b><p>\n";
136 if (defined($in{'id'})) {
137 &ui_print_footer("edit_host.cgi?id=$in{'id'}", $text{'host_return'},
138 "", $text{'index_return'});
141 &ui_print_footer("", $text{'index_return'});