#!/usr/local/bin/perl # delete_pack.cgi # Ask if the user wants to delete a package, and if so do it require './cluster-software-lib.pl'; &ReadParse(); @servers = &list_servers(); if ($in{'server'} < 0) { # Find servers that have the package @hosts = &list_software_hosts(); foreach $h (@hosts) { foreach $p (@{$h->{'packages'}}) { if ($p->{'name'} eq $in{'package'}) { local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers; push(@got, $s); last; } } } $s = $got[0]; } else { ($s) = grep { $_->{'id'} == $in{'server'} } @servers; @got = ( $s ); } &remote_foreign_require($s->{'host'}, "software", "software-lib.pl"); &header($text{'delete_title'}, ""); print "
\n";
foreach $g (@got) {
&remote_foreign_require($g->{'host'}, "software", "software-lib.pl")
if ($s ne $g);
local $error = &remote_foreign_call($g->{'host'}, "software",
"delete_package", $in{'package'});
if ($error) {
print &text('delete_error', $g->{'host'}, $error),"
\n";
}
else {
print &text('delete_success', $g->{'host'}),"
\n";
}
}
print "
$text{'delete_done'}
\n";
}
else {
# Ask if the user is sure..
$n = &remote_foreign_call($s->{'host'}, "software", "check_files",
$in{'package'});
$files = &remote_eval($s->{'host'}, "software", "\\%files");
$sz = 0;
for($i=0; $i<$n; $i++) {
if ($files->{$i,'type'} == 0) { $sz += $files->{$i,'size'}; }
}
print "