refuse snapshots older than 10 days
[buildfarm-server.git] / cgi-bin / pgstatus.pl
index 373d4f6b755e96acccef7aa42aaf7f9440d90c3c..f951aee02ad2afc21fd5467658132e25d6df1cdd 100755 (executable)
@@ -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);
 
@@ -141,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=
@@ -331,36 +354,9 @@ $row=$sth->fetchrow_arrayref;
 my ($os, $compiler,$arch) = @$row;
 $sth->finish;
 
 my ($os, $compiler,$arch) = @$row;
 $sth->finish;
 
-$db->begin_work;
-my $have_status = $db->selectrow_arrayref( q{
-    select 1 
-    from build_status_latest 
-    where sysname = ? and branch = ?
-}, 
-                                          undef, $animal, $branch);
-if ($have_status) 
-{
-    $db->do(q{
-             update build_status_latest
-                 set latest_snapshot = ?
-                 where sysname = ? and branch = ?
-             },
-           undef, $dbdate, $animal, $branch);
-}
-else
-{
-    $db->do(q{
-             insert into build_status_latest
-                 (sysname, branch, latest_snapshot)
-             values (?,?,?)
-             },
-           undef, $animal, $branch, $dbdate);
-}
-$db->commit;
-
 $db->begin_work;
 $db->do("delete from dashboard_mat");
 $db->begin_work;
 $db->do("delete from dashboard_mat");
-$db->do("insert into dashboard_mat select * from dashboard_mat_data2");
+$db->do("insert into dashboard_mat select * from dashboard_mat_data");
 $db->commit;
 
 $db->disconnect;
 $db->commit;
 
 $db->disconnect;