use thawed client config
authorAndrew Dunstan <andrew@dunslane.net>
Sat, 18 Dec 2010 23:37:40 +0000 (18:37 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Sat, 18 Dec 2010 23:37:40 +0000 (18:37 -0500)
bf-alerts.pl

index 1b9dd1a3b611a879a708c4ef969997f2f5c25afe..232f11ae6946cbcd96449eb295989effeff4317b 100755 (executable)
@@ -8,7 +8,7 @@ use DBI;
 use DBD::Pg;
 use Data::Dumper;
 use Mail::Send;
-use Safe;
+use Storable qw(thaw);
 
 use vars qw($dbhost $dbname $dbuser $dbpass $dbport
        $all_stat $fail_stat $change_stat $green_stat
@@ -45,7 +45,7 @@ my $sth = $db->prepare(q[
     SELECT DISTINCT ON (sysname, branch) 
         sysname, branch, 
         extract(epoch from snapshot at time zone 'GMT')::int as snapshot, 
-        conf_sum as config
+        frozen_conf as config
     FROM build_status s join buildsystems b on (s.sysname = b.name)
     WHERE NOT b.no_alerts and
        snapshot > current_timestamp - interval '30 days'
@@ -108,14 +108,7 @@ print "starting alert run: $lts\n";
 
 foreach my $sysbranch (@last_heard)
 {
-    # eval the config in a Safe container to protect ourselves
-    my $container = new Safe;
-    my $sconf = $sysbranch->{config}; 
-    unless ($sconf =~ s/.*(\$Script_Config)/$1/ms )
-    {
-       $sconf = '$Script_Config={};';
-    }
-    my $client_conf = $container->reval("$sconf;");
+    my $client_conf = thaw $sysbranch->{config};
 
     my %client_alert_settings = %{ $client_conf->{alerts} || {} };
     my $setting = $client_alert_settings{$sysbranch->{branch}};