git://git.exim.org
/
buildfarm-server.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refuse snapshots older than 10 days
[buildfarm-server.git]
/
cgi-bin
/
pgstatus.pl
diff --git
a/cgi-bin/pgstatus.pl
b/cgi-bin/pgstatus.pl
index aa83566d95357ff8a530c1d52936ef349a2d0ab5..f951aee02ad2afc21fd5467658132e25d6df1cdd 100755
(executable)
--- a/
cgi-bin/pgstatus.pl
+++ b/
cgi-bin/pgstatus.pl
@@
-19,6
+19,7
@@
use DBD::Pg;
use Data::Dumper;
use Mail::Send;
use Safe;
use Data::Dumper;
use Mail::Send;
use Safe;
+use Time::ParseDate;
require "$ENV{BFConfDir}/BuildFarmWeb.pl";
require "$ENV{BFConfDir}/BuildFarmWeb.pl";
@@
-62,6
+63,15
@@
unless ($animal && $ts && $stage && $sig)
}
}
+unless ($branch =~ /^(HEAD|REL\d+_\d+_STABLE)$/)
+{
+ print
+ "Status: 492 bad branch parameter $branch\nContent-Type: text/plain\n\n",
+ "bad branch parameter $branch\n";
+ exit;
+
+}
+
my $db = DBI->connect($dsn,$dbuser,$dbpass);
my $db = DBI->connect($dsn,$dbuser,$dbpass);
@@
-74,6
+84,8
@@
$sth->execute($animal);
my ($secret)=$sth->fetchrow_array();
$sth->finish;
my ($secret)=$sth->fetchrow_array();
$sth->finish;
+my $tsdiff = time - $ts;
+
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($ts);
$year += 1900; $mon +=1;
my $date=
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($ts);
$year += 1900; $mon +=1;
my $date=
@@
-84,6
+96,7
@@
if ($ENV{BF_DEBUG} || ($ts > time) || ($ts + 86400 < time ) || (! $secret) )
open(TX,">../buildlogs/$animal.$date");
print TX "sig=$sig\nlogtar-len=" , length($log_archive),
"\nstatus=$res\nstage=$stage\nconf:\n$conf\n",
open(TX,">../buildlogs/$animal.$date");
print TX "sig=$sig\nlogtar-len=" , length($log_archive),
"\nstatus=$res\nstage=$stage\nconf:\n$conf\n",
+ "tsdiff:$tsdiff\n",
"changed_this_run:\n$changed_this_run\n",
"changed_since_success:\n$changed_since_success\n",
"log:\n",$log;
"changed_this_run:\n$changed_this_run\n",
"changed_since_success:\n$changed_since_success\n",
"log:\n",$log;
@@
-91,7
+104,7
@@
if ($ENV{BF_DEBUG} || ($ts > time) || ($ts + 86400 < time ) || (! $secret) )
close(TX);
}
close(TX);
}
-unless ($ts < time)
+unless ($ts < time
+ 120
)
{
my $gmt = gmtime($ts);
print "Status: 491 bad ts parameter - $ts ($gmt GMT) is in the future.\n",
{
my $gmt = gmtime($ts);
print "Status: 491 bad ts parameter - $ts ($gmt GMT) is in the future.\n",
@@
-138,6
+151,19
@@
if ($calc_sig ne $sig && $calc_sig2 ne $sig)
map {tr/$@/+=/; $_ = decode_base64($_); }
($log, $conf,$changed_this_run,$changed_since_success,$log_archive);
map {tr/$@/+=/; $_ = decode_base64($_); }
($log, $conf,$changed_this_run,$changed_since_success,$log_archive);
+
+if ($log =~/Last file mtime in snapshot: (.*)/)
+{
+ my $snaptime = parsedate($1);
+ if ($snaptime < (time - (10 * 86400)))
+ {
+ print "Status: 493 snapshot too old: $1\nContent-Type: text/plain\n\n";
+ print "snapshot to old: $1\n";
+ $db->disconnect;
+ exit;
+ }
+}
+
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($ts);
$year += 1900; $mon +=1;
my $dbdate=
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($ts);
$year += 1900; $mon +=1;
my $dbdate=
@@
-227,16
+253,19
@@
if (@config_flags)
{
@config_flags = grep {! m/=/ } @config_flags;
map {s/\s+//g; $_=qq("$_"); } @config_flags;
{
@config_flags = grep {! m/=/ } @config_flags;
map {s/\s+//g; $_=qq("$_"); } @config_flags;
+ push @config_flags,'git' if $client_conf->{scm} eq 'git';
$config_flags = '{' . join(',',@config_flags) . '}' ;
}
$config_flags = '{' . join(',',@config_flags) . '}' ;
}
+my $scm = $client_conf->{scm} || 'cvs';
+my $scmurl = $client_conf->{scm_url};
my $logst = <<EOSQL;
insert into build_status
(sysname, snapshot,status, stage, log,conf_sum, branch,
changed_this_run, changed_since_success,
my $logst = <<EOSQL;
insert into build_status
(sysname, snapshot,status, stage, log,conf_sum, branch,
changed_this_run, changed_since_success,
- log_archive_filenames , log_archive, build_flags)
- values(?,?,?,?,?,?,?,?,?,?,?,?)
+ log_archive_filenames , log_archive, build_flags
, scm, scmurl
)
+ values(?,?,?,?,?,?,?,?,?,?,?,?
,?,?
)
EOSQL
;
$sth=$db->prepare($logst);
EOSQL
;
$sth=$db->prepare($logst);
@@
-254,6
+283,8
@@
$sth->bind_param(10,$log_file_names);
#$sth->bind_param(11,$log_archive,{ pg_type => DBD::Pg::PG_BYTEA });
$sth->bind_param(11,undef,{ pg_type => DBD::Pg::PG_BYTEA });
$sth->bind_param(12,$config_flags);
#$sth->bind_param(11,$log_archive,{ pg_type => DBD::Pg::PG_BYTEA });
$sth->bind_param(11,undef,{ pg_type => DBD::Pg::PG_BYTEA });
$sth->bind_param(12,$config_flags);
+$sth->bind_param(13,$scm);
+$sth->bind_param(14,$scmurl);
$sth->execute;
$sth->finish;
$sth->execute;
$sth->finish;
@@
-282,6
+313,7
@@
foreach my $log_file( @log_file_names )
$stage_start = $mtime;
my $ltext = <$handle>;
close($handle);
$stage_start = $mtime;
my $ltext = <$handle>;
close($handle);
+ $ltext =~ s/\x00/\\0/g;
$sth->execute($animal,$dbdate,$branch,$log_file,$ltext,
"$stage_interval seconds");
}
$sth->execute($animal,$dbdate,$branch,$log_file,$ltext,
"$stage_interval seconds");
}
@@
-322,6
+354,11
@@
$row=$sth->fetchrow_arrayref;
my ($os, $compiler,$arch) = @$row;
$sth->finish;
my ($os, $compiler,$arch) = @$row;
$sth->finish;
+$db->begin_work;
+$db->do("delete from dashboard_mat");
+$db->do("insert into dashboard_mat select * from dashboard_mat_data");
+$db->commit;
+
$db->disconnect;
print "Content-Type: text/plain\n\n";
$db->disconnect;
print "Content-Type: text/plain\n\n";