]> git.etc.gen.nz Git - spong.git/commitdiff
fixed notifiction problem with $SEND_MESSAGE = CHANGE, if status = green and first...
authorStephen L Johnson <sjohnson@monsters.org>
Tue, 19 Dec 2000 22:15:13 +0000 (22:15 +0000)
committerStephen L Johnson <sjohnson@monsters.org>
Tue, 19 Dec 2000 22:15:13 +0000 (22:15 +0000)
src/spong-server.pl

index 07ab10a689e35ef24ed899e959b65523a6601c55..3a76c0ea33a4263e5750033523ee71d452d01a72 100755 (executable)
@@ -6,7 +6,7 @@
 # There are one or more update processes that listen for status updates 
 # from client programs.
 
-# $Id: spong-server.pl,v 1.34 2000/12/19 05:27:35 sljohnson Exp $
+# $Id: spong-server.pl,v 1.35 2000/12/19 22:15:13 sljohnson Exp $
 
 use lib "@@LIBDIR@@";
 
@@ -36,7 +36,7 @@ $MAX_CHILDREN = 10;
 $debug = $restart = $kill = 0;
 
 if (! GetOptions("debug:i" => \$debuglevel, "restart" => \$restart, 
-         "kill" => \$kill, "test" => \$test) ) {
+         "kill" => \$kill, "test" => \$test ) ) {
    &usage();
    exit 1;
 }
@@ -1106,7 +1106,13 @@ sub message_user {
          }
       } elsif ( $SEND_MESSAGE eq "CHANGE" ) {
          # If status has changed 
-         if ( ! -f "$SPONGDB/$host/services/$service.$color" ) {
+         my $firstrun = 1;
+         foreach my $c ('red','yellow','green') {
+            if( -f "$SPONGDB/$host/$service.$c" ) { $firstrun = 0; }
+         }
+         if ( ! -f "$SPONGDB/$host/services/$service.$color"
+              and ! ($firstrun and $color eq "green" ) ) {
+            # If this is the first update, don't page on a green status!!
             &debug("change in state, messaging a human",2);
             &send_message( $host, $service, $color, $time, $sum, $duration );
          }
@@ -1128,8 +1134,8 @@ sub send_message {
    if ( -f $smessage ) {
       my @args;
       push @args,$smessage;
-      if( $debug >= 3 ) { push @args,'--debug'; }
-      if( $test )       { push @args,'--test';  }
+      if( $debug >= 3 ) { push @args,"--debug"; }
+      if( $test )       { push @args,"--test"; }
       push @args, $color, $host, $service, $time, $sum, $duration;
       system(@args);
    } else {