X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FSummary.pm;h=ac390a1125d5cfe8b57dbad73b5887240b9a7572;hp=50e730b380c32da02625331b6c81b4de6c0b7579;hb=9cf3998c4ef71332dea96ff3115daf8b9f722acb;hpb=a7e968ce327855f2ba2624ca8517069a936c9b5b diff --git a/lib/BackupPC/CGI/Summary.pm b/lib/BackupPC/CGI/Summary.pm index 50e730b..ac390a1 100644 --- a/lib/BackupPC/CGI/Summary.pm +++ b/lib/BackupPC/CGI/Summary.pm @@ -10,7 +10,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2003 Craig Barratt +# Copyright (C) 2003-2009 Craig Barratt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,7 +28,7 @@ # #======================================================================== # -# Version 2.1.0_CVS, released 3 Jul 2003. +# Version 3.2.0beta0, released 5 April 2009. # # See http://backuppc.sourceforge.net. # @@ -45,26 +45,22 @@ sub action $strNone, $strGood, $hostCntGood, $hostCntNone); $hostCntGood = $hostCntNone = 0; - GetStatusInfo("hosts"); + GetStatusInfo("hosts info"); my $Privileged = CheckPermission(); - foreach my $host ( GetUserHosts() ) { ## give access to users hosts only - ## foreach my $host ( sort(keys(%Status)) ) { - my($fullDur, $incrCnt, $incrAge, $fullSize, $fullRate, $reasonHilite); + foreach my $host ( GetUserHosts(1) ) { + my($fullDur, $incrCnt, $incrAge, $fullSize, $fullRate, $reasonHilite, + $lastAge, $tempState, $tempReason, $lastXferErrors); my($shortErr); my @Backups = $bpc->BackupInfoRead($host); my $fullCnt = $incrCnt = 0; - my $fullAge = $incrAge = -1; + my $fullAge = $incrAge = $lastAge = -1; - if ( defined(my $error = $bpc->ConfigRead($host)) ) { - print("dump failed: Can't read PC's config file: $error\n"); - exit(1); - } + $bpc->ConfigRead($host); %Conf = $bpc->Conf(); - if ($Conf{XferMethod} eq "archive" ) { - next; - } + next if ( $Conf{XferMethod} eq "archive" ); + next if ( !$Privileged && !CheckPermission($host) ); for ( my $i = 0 ; $i < @Backups ; $i++ ) { if ( $Backups[$i]{type} eq "full" ) { @@ -83,6 +79,16 @@ sub action $incrSizeTot += $Backups[$i]{size} / (1024 * 1024); } } + if ( $fullAge > $incrAge && $fullAge >= 0 ) { + $lastAge = $fullAge; + } else { + $lastAge = $incrAge; + } + if ( $lastAge < 0 ) { + $lastAge = ""; + } else { + $lastAge = sprintf("%.1f", (time - $lastAge) / (24 * 3600)); + } if ( $fullAge < 0 ) { $fullAge = ""; $fullRate = ""; @@ -100,28 +106,50 @@ sub action $incrTot += $incrCnt; $fullSize = sprintf("%.2f", $fullSize / 1000); $incrAge = " " if ( $incrAge eq "" ); + $lastXferErrors = $Backups[@Backups-1]{xferErrs} if ( @Backups ); $reasonHilite = $Conf{CgiStatusHilightColor}{$Status{$host}{reason}} || $Conf{CgiStatusHilightColor}{$Status{$host}{state}}; + if ( $Conf{BackupsDisable} == 1 ) { + if ( $Status{$host}{state} ne "Status_backup_in_progress" + && $Status{$host}{state} ne "Status_restore_in_progress" ) { + $reasonHilite = $Conf{CgiStatusHilightColor}{Disabled_OnlyManualBackups}; + $tempState = "Disabled_OnlyManualBackups"; + $tempReason = ""; + } else { + $tempState = $Status{$host}{state}; + $tempReason = $Status{$host}{reason}; + } + } elsif ($Conf{BackupsDisable} == 2 ) { + $reasonHilite = $Conf{CgiStatusHilightColor}{Disabled_AllBackupsDisabled}; + $tempState = "Disabled_AllBackupsDisabled"; + $tempReason = ""; + } else { + $tempState = $Status{$host}{state}; + $tempReason = $Status{$host}{reason}; + } $reasonHilite = " bgcolor=\"$reasonHilite\"" if ( $reasonHilite ne "" ); - if ( $Status{$host}{state} ne "Status_backup_in_progress" - && $Status{$host}{state} ne "Status_restore_in_progress" + if ( $tempState ne "Status_backup_in_progress" + && $tempState ne "Status_restore_in_progress" + && $Conf{BackupsDisable} == 0 && $Status{$host}{error} ne "" ) { ($shortErr = $Status{$host}{error}) =~ s/(.{48}).*/$1.../; $shortErr = " ($shortErr)"; } $str = < ${HostLink($host)} +${HostLink($host)} ${UserLink(defined($Hosts->{$host}) ? $Hosts->{$host}{user} : "")} - $fullCnt - $fullAge - $fullSize - $fullRate - $incrCnt - $incrAge - $Lang->{$Status{$host}{state}} - $Lang->{$Status{$host}{reason}}$shortErr + $fullCnt + $fullAge + $fullSize + $fullRate + $incrCnt + $incrAge + $lastAge + $Lang->{$tempState} + $lastXferErrors + $Lang->{$tempReason}$shortErr EOF if ( @Backups == 0 ) { $hostCntNone++; @@ -134,6 +162,8 @@ EOF $fullSizeTot = sprintf("%.2f", $fullSizeTot / 1000); $incrSizeTot = sprintf("%.2f", $incrSizeTot / 1000); my $now = timeStamp2(time); + my $DUlastTime = timeStamp2($Info{DUlastValueTime}); + my $DUmaxTime = timeStamp2($Info{DUDailyMaxTime}); my $content = eval ("qq{$Lang->{BackupPC_Summary}}"); Header($Lang->{BackupPC__Server_Summary}, $content);