speed up members list, and only show latest builds less than a year old
[buildfarm-server.git] / cgi-bin / pgstatus.pl
index 603e15f2e1be9cdf1bea8000fd1c8540edaf5275..5896761f0d8953fec98d15b78ef5934c9cc1032b 100755 (executable)
@@ -74,6 +74,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 +86,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 +94,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",
@@ -227,16 +230,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 +260,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 +290,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");
 }
@@ -324,8 +333,8 @@ $sth->finish;
 
 
 $db->begin_work;
 
 
 $db->begin_work;
-$db->do("truncate dashboard_mat");
-$db->do("insert into dashboard_mat select * from dashboard_mat_data");
+$db->do("delete from dashboard_mat");
+$db->do("insert into dashboard_mat select * from dashboard_mat_data2");
 $db->commit;
 
 $db->disconnect;
 $db->commit;
 
 $db->disconnect;