#!/usr/local/bin/perl # edit_pack.cgi # Display details of a package require './cluster-software-lib.pl'; &ReadParse(); &ui_print_header(undef, $text{'edit_title'}, "", "edit_pack"); # Find all hosts with the package @hosts = &list_software_hosts(); @servers = &list_servers(); foreach $h (@hosts) { foreach $p (@{$h->{'packages'}}) { if ($p->{'name'} eq $in{'package'}) { local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers; push(@got, $s); $version{$s} = $p->{'version'}; $pkg = $p if (!$pkg); $checkon = $s if (!$s->{'id'}); } } } # Get the details from this host, or the first in the list $checkon = $got[0] if (!$checkon); &remote_foreign_require($checkon->{'host'}, "software", "software-lib.pl"); @pinfo = &remote_foreign_call($checkon->{'host'}, "software", "package_info", $in{'package'}); # Show package details print "
",&text('edit_details', $checkon->{'desc'} ? $checkon->{'desc'} : "$checkon->{'host'}")," | ||||||||||||||||
|
\n"; print "
\n";
# Show hosts with the package
print &ui_hr();
print &ui_subheading($text{'edit_hosts'});
@icons = map { "/servers/images/$_->{'type'}.gif" } @got;
@links = map { "edit_host.cgi?id=$_->{'id'}" } @got;
@titles = map { ($_->{'desc'} ? $_->{'desc'} :
$_->{'realhost'} ? "$_->{'realhost'}:$_->{'port'}" :
"$_->{'host'}:$_->{'port'}").
($version{$_} ? "
$text{'edit_ver'} $version{$_}" : "") } @got;
&icons_table(\@links, \@titles, \@icons);
&remote_finished();
if ($in{'search'}) {
&ui_print_footer("search.cgi?search=$in{'search'}", $text{'search_return'});
}
else {
&ui_print_footer("", $text{'index_return'});
}