use lib "/usr/local/BackupPC/lib";
use Getopt::Std;
use BackupPC::Lib;
+use BackupPC::Search;
-use DBI;
use Data::Dump qw(dump);
my $debug = $ENV{DEBUG} || 0;
my %Conf = $bpc->Conf();
-my $dbh = DBI->connect($Conf{SearchDSN}, $Conf{SearchUser}, "", { RaiseError => 1, AutoCommit => 0 });
+my $dbh = BackupPC::Search::get_dbh;
my $sth = $dbh->prepare(qq{
select
warn "$0: host $host doesn't have any backups... skipping\n";
next;
}
-
- my $all_backup_numbers;
- $all_backup_numbers->{ $_->{num} }++ foreach @backups;
-
- $sth->execute( $host );
- while ( my $row = $sth->fetchrow_hashref ) {
- warn "# row ",dump($row) if $debug;
- $all_backup_numbers->{ $row->{num} } =
- $row->{inc_deleted} ? 0 :
- $row->{size} == 0 ? 0 :
- $row->{inc_size} > 0 ? 0 :
- $row->{size} > 0 ? 1 :
- 0;
- }
-
- warn "# $host all_backup_numbers = ",dump($all_backup_numbers),"\n";
-
- $host_nums->{$host} = [
- sort
- grep { $all_backup_numbers->{$_} }
- keys %$all_backup_numbers
- ];
+ $host_nums->{$host} = [ BackupPC::Search::host_backup_nums( $host ) ];
}
foreach ( @HostFilter ) {
use strict;
use BackupPC::CGI::Lib qw(:all);
use Data::Dumper;
-use DBI;
+use BackupPC::Search;
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" ) {
$incrSizeTot = $Backups[$i]{size} / (1024 * 1024);
}
$backupnumber = $Backups[$i]{num};
- $all_backup_numbers->{$backupnumber}++;
}
$fullSizeTot += $fullSize + $incrSizeTot;
$fullSize = sprintf("%.2f", ($fullSize + $incrSizeTot) / 1000);
$bpc->ConfigRead($archHost);
%Conf = $bpc->Conf();
-use Data::Dump qw(dump);
-
- my $dbh = DBI->connect($Conf{SearchDSN}, $Conf{SearchUser}, "", { RaiseError => 1, AutoCommit => 0 });
- my $sth = $dbh->prepare(qq{
- select
- hosts.name as host, -- FIXME for debug
- backups.num as num,
- inc_size,
- size,
- inc_deleted
- from backups
- join hosts on hosts.id = hostid
- 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 ? 0 :
- $row->{size} > 0 ? 1 :
- 0;
- }
-
-warn "# host $host all_backup_numbers = ",dump($all_backup_numbers);
- my @backup_nums =
- sort { $a <=> $b }
- grep { $all_backup_numbers->{$_} }
- keys %$all_backup_numbers;
-
my $checkboxes;
- foreach my $backupnumber ( @backup_nums ) {
+ foreach my $backupnumber ( BackupPC::Search::host_backup_nums($host) ) {
$checkboxes .= qq|
<input type="hidden" name="fcb$checkBoxCnt" value="$host">
<input type="checkbox" name="backup$checkBoxCnt" value="$backupnumber">$backupnumber
);
}
+sub host_backup_nums {
+ my $host = shift;
+ my $sth = get_dbh->prepare(qq{
+ select
+ hosts.name as host, -- FIXME for debug
+ backups.num as num,
+ inc_size,
+ size,
+ inc_deleted
+ from backups
+ join hosts on hosts.id = hostid
+ where hosts.name = ?
+ });
+ $sth->execute($host);
+ # and inc_size < 0 and size > 0 and not inc_deleted
+
+ my $all_backup_numbers;
+
+ 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 ? 0 :
+ $row->{size} > 0 ? 1 :
+ 0;
+ }
+
+warn "# host $host all_backup_numbers = ",dump($all_backup_numbers);
+ my @backup_nums =
+ sort { $a <=> $b }
+ grep { $all_backup_numbers->{$_} }
+ keys %$all_backup_numbers;
+
+ return @backup_nums;
+}
+
sub getBackupsNotBurned($) {