#!/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"; if ($in{'sure'}) { # do the deletion print "",&text('delete_header', $in{'package'}),"

\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 "

\n"; if ($in{'server'} < 0) { print &text('delete_rusure', "$in{'package'}", $n, $sz),"
\n"; } else { print &text('delete_rusure2', "$in{'package'}", $n, $sz, $s->{'desc'} ? $s->{'desc'} : $s->{'host'}),"
\n"; } print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; } print "
\n"; &footer("edit_pack.cgi?search=$in{'search'}&package=".&urlize($p), $text{'edit_return'});