X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FHostInfo.pm;h=01e292406f5ab30ce43a656ca80916a4d921327f;hp=cf58ad7efd400054bc034fdff4fe6fd06fe26ddb;hb=b81d2da5e16975674f011e4833337ac0fa24e0ea;hpb=2c14784ad71874ec850d189060fe63d6eb9eba95
diff --git a/lib/BackupPC/CGI/HostInfo.pm b/lib/BackupPC/CGI/HostInfo.pm
index cf58ad7..01e2924 100644
--- a/lib/BackupPC/CGI/HostInfo.pm
+++ b/lib/BackupPC/CGI/HostInfo.pm
@@ -28,7 +28,7 @@
#
#========================================================================
#
-# Version 2.1.0_CVS, released 8 Feb 2004.
+# Version 3.0.0beta2, released 11 Nov 2006.
#
# See http://backuppc.sourceforge.net.
#
@@ -46,14 +46,16 @@ sub action
$host =~ s/^\s+//;
$host =~ s/\s+$//;
- return Action_GeneralInfo() if ( $host eq "" );
+ if ( $host eq "" ) {
+ ErrorExit(eval("qq{$Lang->{Unknown_host_or_user}}"));
+ }
$host = lc($host)
- if ( !-d "$TopDir/pc/$host" && -d "$TopDir/pc/" . lc($host) );
+ if ( !-d "$TopDir/pc/$host" && -d "$TopDir/pc/" . lc($host) );
if ( $host =~ /\.\./ || !-d "$TopDir/pc/$host" ) {
#
# try to lookup by user name
#
- if ( !defined($Hosts->{$host}) ) {
+ if ( $host eq "" || !defined($Hosts->{$host}) ) {
foreach my $h ( keys(%$Hosts) ) {
if ( $Hosts->{$h}{user} eq $host
|| lc($Hosts->{$h}{user}) eq lc($host) ) {
@@ -63,7 +65,7 @@ sub action
}
CheckPermission();
ErrorExit(eval("qq{$Lang->{Unknown_host_or_user}}"))
- if ( !defined($Hosts->{$host}) );
+ if ( !defined($Hosts->{$host}) );
}
$In{host} = $host;
}
@@ -146,6 +148,7 @@ EOF
}
my $age = sprintf("%.1f", (time - $Backups[$i]{startTime}) / (24*3600));
my $browseURL = "$MyURL?action=browse&host=${EscURI($host)}&num=$Backups[$i]{num}";
+ my $level = $Backups[$i]{level};
my $filled = $Backups[$i]{noFill} ? $Lang->{No} : $Lang->{Yes};
$filled .= " ($Backups[$i]{fillFromNum}) "
if ( $Backups[$i]{fillFromNum} ne "" );
@@ -154,6 +157,7 @@ EOF
$Backups[$i]{num} |
$ltype |
$filled |
+ $level |
$startTime |
$duration |
$age |
@@ -286,17 +290,52 @@ EOF
if ( $StatusHost{aliveCnt} > 0 ) {
$statusStr .= eval("qq{$Lang->{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times}}");
- if ( $StatusHost{aliveCnt} >= $Conf{BlackoutGoodCnt}
- && $Conf{BlackoutGoodCnt} >= 0 && $Conf{BlackoutHourBegin} >= 0
- && $Conf{BlackoutHourEnd} >= 0 ) {
+ if ( (@{$Conf{BlackoutPeriods}} || defined($Conf{BlackoutHourBegin}))
+ && $StatusHost{aliveCnt} >= $Conf{BlackoutGoodCnt}
+ && $Conf{BlackoutGoodCnt} >= 0 ) {
+ #
+ # Handle backward compatibility with original separate scalar
+ # blackout parameters.
+ #
+ if ( defined($Conf{BlackoutHourBegin}) ) {
+ push(@{$Conf{BlackoutPeriods}},
+ {
+ hourBegin => $Conf{BlackoutHourBegin},
+ hourEnd => $Conf{BlackoutHourEnd},
+ weekDays => $Conf{BlackoutWeekDays},
+ }
+ );
+ }
+
+ #
+ # TODO: this string needs i18n. Also, comma-separated
+ # list with "and" for the last element might not translate
+ # correctly.
+ #
my(@days) = qw(Sun Mon Tue Wed Thu Fri Sat);
- my($days) = join(", ", @days[@{$Conf{BlackoutWeekDays}}]);
- my($t0) = sprintf("%d:%02d", $Conf{BlackoutHourBegin},
- 60 * ($Conf{BlackoutHourBegin}
- - int($Conf{BlackoutHourBegin})));
- my($t1) = sprintf("%d:%02d", $Conf{BlackoutHourEnd},
- 60 * ($Conf{BlackoutHourEnd}
- - int($Conf{BlackoutHourEnd})));
+ my $blackoutStr;
+ my $periodCnt = 0;
+ foreach my $p ( @{$Conf{BlackoutPeriods}} ) {
+ next if ( ref($p->{weekDays}) ne "ARRAY"
+ || !defined($p->{hourBegin})
+ || !defined($p->{hourEnd})
+ );
+ my $days = join(", ", @days[@{$p->{weekDays}}]);
+ my $t0 = sprintf("%d:%02d", $p->{hourBegin},
+ 60 * ($p->{hourBegin} - int($p->{hourBegin})));
+ my $t1 = sprintf("%d:%02d", $p->{hourEnd},
+ 60 * ($p->{hourEnd} - int($p->{hourEnd})));
+ if ( $periodCnt ) {
+ $blackoutStr .= ", ";
+ if ( $periodCnt == @{$Conf{BlackoutPeriods}} - 1 ) {
+ $blackoutStr .= eval("qq{$Lang->{and}}");
+ $blackoutStr .= " ";
+ }
+ }
+ $blackoutStr
+ .= eval("qq{$Lang->{__time0_to__time1_on__days}}");
+ $periodCnt++;
+ }
$statusStr .= eval("qq{$Lang->{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___}}");
}
}
@@ -308,11 +347,13 @@ EOF
if ( @Backups ) {
# only allow incremental if there are already some backups
$startIncrStr = <
+
EOF
}
- $startIncrStr = eval ("qq{$startIncrStr}");
+ $startIncrStr = eval("qq{$startIncrStr}");
my $content = eval("qq{$Lang->{Host__host_Backup_Summary2}}");
Header(eval("qq{$Lang->{Host__host_Backup_Summary}}"), $content);
Trailer();