Summary.pm (BackupPC-4.3.2) | : | Summary.pm (BackupPC-4.4.0) | ||
---|---|---|---|---|
skipping to change at line 30 | skipping to change at line 30 | |||
# This program is distributed in the hope that it will be useful, | # This program is distributed in the hope that it will be useful, | |||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
# GNU General Public License for more details. | # GNU General Public License for more details. | |||
# | # | |||
# You should have received a copy of the GNU General Public License | # You should have received a copy of the GNU General Public License | |||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
# | # | |||
#======================================================================== | #======================================================================== | |||
# | # | |||
# Version 4.3.2, released 17 Feb 2020. | # Version 4.4.0, released 20 Jun 2020. | |||
# | # | |||
# See http://backuppc.sourceforge.net. | # See http://backuppc.sourceforge.net. | |||
# | # | |||
#======================================================================== | #======================================================================== | |||
package BackupPC::CGI::Summary; | package BackupPC::CGI::Summary; | |||
use strict; | use strict; | |||
use BackupPC::CGI::Lib qw(:all); | use BackupPC::CGI::Lib qw(:all); | |||
sub action | sub action | |||
{ | { | |||
my($fullTot, $fullSizeTot, $incrTot, $incrSizeTot, $str, | my($fullTot, $fullSizeTot, $incrTot, $incrSizeTot, $str, $strNone, $strGood, | |||
$strNone, $strGood, $hostCntGood, $hostCntNone); | $hostCntGood, $hostCntNone); | |||
$hostCntGood = $hostCntNone = 0; | $hostCntGood = $hostCntNone = 0; | |||
GetStatusInfo("hosts info"); | GetStatusInfo("hosts info"); | |||
my $Privileged = CheckPermission(); | my $Privileged = CheckPermission(); | |||
foreach my $host ( GetUserHosts(1) ) { | foreach my $host ( GetUserHosts(1) ) { | |||
my($fullDur, $incrCnt, $incrAge, $fullSize, $fullRate, $reasonHilite, | ||||
$lastAge, $tempState, $tempReason, $lastXferErrors); | my( | |||
my($shortErr); | $fullDur, $incrCnt, $incrAge, $fullSize, $fullRate, | |||
$reasonHilite, $lastAge, $tempState, $tempReason, $lastXferErrors | ||||
); | ||||
my($shortErr); | ||||
my @Backups = $bpc->BackupInfoRead($host); | my @Backups = $bpc->BackupInfoRead($host); | |||
my $fullCnt = $incrCnt = 0; | my $fullCnt = $incrCnt = 0; | |||
my $fullAge = $incrAge = $lastAge = -1; | my $fullAge = $incrAge = $lastAge = -1; | |||
$bpc->ConfigRead($host); | $bpc->ConfigRead($host); | |||
%Conf = $bpc->Conf(); | %Conf = $bpc->Conf(); | |||
next if ( $Conf{XferMethod} eq "archive" ); | next if ( $Conf{XferMethod} eq "archive" ); | |||
next if ( !$Privileged && !CheckPermission($host) ); | next if ( !$Privileged && !CheckPermission($host) ); | |||
skipping to change at line 81 | skipping to change at line 83 | |||
} | } | |||
$fullSizeTot += $Backups[$i]{size} / (1024 * 1024); | $fullSizeTot += $Backups[$i]{size} / (1024 * 1024); | |||
} elsif ( $Backups[$i]{type} eq "incr" ) { | } elsif ( $Backups[$i]{type} eq "incr" ) { | |||
$incrCnt++; | $incrCnt++; | |||
if ( $incrAge < 0 || $Backups[$i]{startTime} > $incrAge ) { | if ( $incrAge < 0 || $Backups[$i]{startTime} > $incrAge ) { | |||
$incrAge = $Backups[$i]{startTime}; | $incrAge = $Backups[$i]{startTime}; | |||
} | } | |||
$incrSizeTot += $Backups[$i]{size} / (1024 * 1024); | $incrSizeTot += $Backups[$i]{size} / (1024 * 1024); | |||
} | } | |||
} | } | |||
if ( $fullAge > $incrAge && $fullAge >= 0 ) { | if ( $fullAge > $incrAge && $fullAge >= 0 ) { | |||
$lastAge = $fullAge; | $lastAge = $fullAge; | |||
} else { | } else { | |||
$lastAge = $incrAge; | $lastAge = $incrAge; | |||
} | } | |||
if ( $lastAge < 0 ) { | if ( $lastAge < 0 ) { | |||
$lastAge = ""; | $lastAge = ""; | |||
} else { | } else { | |||
$lastAge = sprintf("%.1f", (time - $lastAge) / (24 * 3600)); | $lastAge = sprintf("%.1f", (time - $lastAge) / (24 * 3600)); | |||
} | } | |||
if ( $fullAge < 0 ) { | if ( $fullAge < 0 ) { | |||
$fullAge = ""; | $fullAge = ""; | |||
$fullRate = ""; | $fullRate = ""; | |||
} else { | } else { | |||
$fullAge = sprintf("%.1f", (time - $fullAge) / (24 * 3600)); | $fullAge = sprintf("%.1f", (time - $fullAge) / (24 * 3600)); | |||
$fullRate = sprintf("%.2f", | $fullRate = sprintf("%.2f", $fullSize / ($fullDur <= 0 ? 1 : $fullDu | |||
$fullSize / ($fullDur <= 0 ? 1 : $fullDur)); | r)); | |||
} | } | |||
if ( $incrAge < 0 ) { | if ( $incrAge < 0 ) { | |||
$incrAge = ""; | $incrAge = ""; | |||
} else { | } else { | |||
$incrAge = sprintf("%.1f", (time - $incrAge) / (24 * 3600)); | $incrAge = sprintf("%.1f", (time - $incrAge) / (24 * 3600)); | |||
} | } | |||
$fullTot += $fullCnt; | $fullTot += $fullCnt; | |||
$incrTot += $incrCnt; | $incrTot += $incrCnt; | |||
$fullSize = sprintf("%.2f", $fullSize / 1024); | $fullSize = sprintf("%.2f", $fullSize / 1024); | |||
$incrAge = " " if ( $incrAge eq "" ); | $incrAge = " " if ( $incrAge eq "" ); | |||
$lastXferErrors = $Backups[@Backups-1]{xferErrs} if ( @Backups ); | $lastXferErrors = $Backups[@Backups - 1]{xferErrs} if ( @Backups ); | |||
$reasonHilite = $Conf{CgiStatusHilightColor}{$Status{$host}{reason}} | $reasonHilite = $Conf{CgiStatusHilightColor}{$Status{$host}{reason}} | |||
|| $Conf{CgiStatusHilightColor}{$Status{$host}{state}}; | || $Conf{CgiStatusHilightColor}{$Status{$host}{state}}; | |||
if ( $Conf{BackupsDisable} == 1 ) { | if ( $Conf{BackupsDisable} == 1 ) { | |||
if ( $Status{$host}{state} ne "Status_backup_in_progress" | if ( $Status{$host}{state} ne "Status_backup_in_progress" | |||
&& $Status{$host}{state} ne "Status_restore_in_progress" ) { | && $Status{$host}{state} ne "Status_restore_in_progress" ) { | |||
$reasonHilite = $Conf{CgiStatusHilightColor}{Disabled_OnlyManual Backups}; | $reasonHilite = $Conf{CgiStatusHilightColor}{Disabled_OnlyManual Backups}; | |||
$tempState = "Disabled_OnlyManualBackups"; | $tempState = "Disabled_OnlyManualBackups"; | |||
$tempReason = ""; | $tempReason = ""; | |||
} else { | } else { | |||
$tempState = $Status{$host}{state}; | $tempState = $Status{$host}{state}; | |||
$tempReason = $Status{$host}{reason}; | $tempReason = $Status{$host}{reason}; | |||
} | } | |||
} elsif ($Conf{BackupsDisable} == 2 ) { | } elsif ( $Conf{BackupsDisable} == 2 ) { | |||
$reasonHilite = $Conf{CgiStatusHilightColor}{Disabled_AllBackupsDisab | $reasonHilite = $Conf{CgiStatusHilightColor}{Disabled_AllBackupsDisa | |||
led}; | bled}; | |||
$tempState = "Disabled_AllBackupsDisabled"; | $tempState = "Disabled_AllBackupsDisabled"; | |||
$tempReason = ""; | $tempReason = ""; | |||
} else { | } else { | |||
$tempState = $Status{$host}{state}; | $tempState = $Status{$host}{state}; | |||
$tempReason = $Status{$host}{reason}; | $tempReason = $Status{$host}{reason}; | |||
} | } | |||
$reasonHilite = " bgcolor=\"$reasonHilite\"" if ( $reasonHilite ne "" ); | $reasonHilite = " bgcolor=\"$reasonHilite\"" if ( $reasonHilite ne "" ); | |||
if ( $tempState ne "Status_backup_in_progress" | if ( $tempState ne "Status_backup_in_progress" | |||
&& $tempState ne "Status_restore_in_progress" | && $tempState ne "Status_restore_in_progress" | |||
&& $Conf{BackupsDisable} == 0 | && $Conf{BackupsDisable} == 0 | |||
&& $Status{$host}{error} ne "" ) { | && $Status{$host}{error} ne "" ) { | |||
($shortErr = $Status{$host}{error}) =~ s/(.{48}).*/$1.../; | ($shortErr = $Status{$host}{error}) =~ s/(.{48}).*/$1.../; | |||
$shortErr = " ($shortErr)"; | $shortErr = " ($shortErr)"; | |||
} | } | |||
$str = <<EOF; | $str = <<EOF; | |||
<tr$reasonHilite><td class="border">${HostLink($host)}</td> | <tr$reasonHilite><td class="border">${HostLink($host)}</td> | |||
<td align="center" class="border"> ${UserLink(defined($Hosts->{$host}) | <td align="center" class="border"> ${UserLink(defined($Hosts->{$host}) | |||
? $Hosts->{$host}{user} : "")} </td> | ? $Hosts->{$host}{user} : "")} </td> | |||
<td align="center" class="border">${EscHTML($Conf{ClientComment})}</td> | <td align="center" class="border">${EscHTML($Conf{ClientComment})}</td> | |||
<td align="center" class="border">$fullCnt</td> | <td align="center" class="border">$fullCnt</td> | |||
<td align="center" class="border">$fullAge</td> | <td align="center" class="border">$fullAge</td> | |||
<td align="center" class="border">$fullSize</td> | <td align="center" class="border">$fullSize</td> | |||
<td align="center" class="border">$fullRate</td> | <td align="center" class="border">$fullRate</td> | |||
skipping to change at line 164 | skipping to change at line 165 | |||
if ( @Backups == 0 ) { | if ( @Backups == 0 ) { | |||
$hostCntNone++; | $hostCntNone++; | |||
$strNone .= $str; | $strNone .= $str; | |||
} else { | } else { | |||
$hostCntGood++; | $hostCntGood++; | |||
$strGood .= $str; | $strGood .= $str; | |||
} | } | |||
} | } | |||
$fullSizeTot = sprintf("%.2f", $fullSizeTot / 1024); | $fullSizeTot = sprintf("%.2f", $fullSizeTot / 1024); | |||
$incrSizeTot = sprintf("%.2f", $incrSizeTot / 1024); | $incrSizeTot = sprintf("%.2f", $incrSizeTot / 1024); | |||
my $now = timeStamp2(time); | ||||
my $now = timeStamp2(time); | ||||
my $DUlastTime = timeStamp2($Info{DUlastValueTime}); | my $DUlastTime = timeStamp2($Info{DUlastValueTime}); | |||
my $DUmaxTime = timeStamp2($Info{DUDailyMaxTime}); | my $DUmaxTime = timeStamp2($Info{DUDailyMaxTime}); | |||
my $DUInodemaxTime = timeStamp2($Info{DUInodeDailyMaxTime}); | my $DUInodemaxTime = timeStamp2($Info{DUInodeDailyMaxTime}); | |||
my $content = eval ("qq{$Lang->{BackupPC_Summary}}"); | my $content = eval("qq{$Lang->{BackupPC_Summary}}"); | |||
Header($Lang->{BackupPC__Server_Summary}, $content); | Header($Lang->{BackupPC__Server_Summary}, $content); | |||
Trailer(); | Trailer(); | |||
} | } | |||
1; | 1; | |||
End of changes. 12 change blocks. | ||||
41 lines changed or deleted | 46 lines changed or added |