X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FArchive.pm;h=c6f2d40b62b224cd39b98dc9bc8b47288c12f3c0;hb=169d1cb4e1293f707c33b6d386ae3e1f6592d66c;hp=cbf5f6308c3241e2eb832aa7a05c28f4a36777a0;hpb=202f8689a250f3841798cd2b9d5bf4c97193629c;p=BackupPC.git
diff --git a/lib/BackupPC/CGI/Archive.pm b/lib/BackupPC/CGI/Archive.pm
index cbf5f63..c6f2d40 100644
--- a/lib/BackupPC/CGI/Archive.pm
+++ b/lib/BackupPC/CGI/Archive.pm
@@ -61,6 +61,8 @@ sub action
my($fullDur, $incrCnt, $fullSize, $fullRate);
my @Backups = $bpc->BackupInfoRead($host);
my $fullCnt = $incrCnt = 0;
+ my $all_backup_numbers;
+
for ( my $i = 0 ; $i < @Backups ; $i++ ) {
if ( $Backups[$i]{type} eq "full" ) {
$fullSize = $Backups[$i]{size} / (1024 * 1024);
@@ -69,6 +71,7 @@ sub action
$incrSizeTot = $Backups[$i]{size} / (1024 * 1024);
}
$backupnumber = $Backups[$i]{num};
+ $all_backup_numbers->{$backupnumber}++;
}
$fullSizeTot += $fullSize + $incrSizeTot;
$fullSize = sprintf("%.2f", ($fullSize + $incrSizeTot) / 1000);
@@ -76,17 +79,39 @@ sub action
$bpc->ConfigRead($archHost);
%Conf = $bpc->Conf();
+use Data::Dump qw(dump);
+
my $dbh = DBI->connect($Conf{SearchDSN}, $Conf{SearchUser}, "", { RaiseError => 1, AutoCommit => 0 });
- my $backup_nums = $dbh->selectcol_arrayref(qq{
+ my $sth = $dbh->prepare(qq{
select
- backups.num as num
+ backups.num as num,
+ inc_size,
+ size,
+ inc_deleted
from backups
join hosts on hosts.id = hostid
- where hosts.name = ? and inc_size < 0 and size > 0 and not inc_deleted
- }, {}, $host);
+ where hosts.name = ?
+ });
+ $sth->execute($host);
+ # and inc_size < 0 and size > 0 and not inc_deleted
+ while( my $row = $sth->fetchrow_hashref ) {
+warn "# row ",dump $row;
+ $all_backup_numbers->{ $row->{num} } =
+ $row->{inc_deleted} ? 0 :
+ $row->{size} == 0 ? 0 :
+ $row->{inc_size} < 0 ? 1 :
+ $row->{size} > 0 ? 1 :
+ 0;
+ }
+
+warn dump($all_backup_numbers);
+ my @backup_nums =
+ sort
+ grep { $all_backup_numbers->{$_} }
+ keys %$all_backup_numbers;
my $checkboxes;
- foreach my $backupnumber ( sort @$backup_nums ) {
+ foreach my $backupnumber ( @backup_nums ) {
$checkboxes .= qq|
$backupnumber
@@ -162,6 +187,7 @@ EOF
next if ( !defined($In{"fcb$i"}) );
my $name = $In{"fcb$i"};
my $backupno = $In{"backup$i"};
+ next unless defined $backupno; # ASA - skip hosts without backups checked
push(@HostList, $name);
push(@BackupList, $backupno);
$hiddenStr .= <