Title: [opsview] [12412] merge in from commercial 12402-12406: opsviewd client lib + opsviewd as async job executor
Revision
12412
Author
aburzynski
Date
2013-06-03 11:53:57 +0100 (Mon, 03 Jun 2013)

Log Message

merge in from commercial 12402-12406: opsviewd client lib + opsviewd as async job executor

Modified Paths

Added Paths

Property Changed


Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/DEV-capside/release-3.9.0:6365-6370
/branches/DEV-extra-notification-data:6734-6746
/branches/DEV-odw-calculations:9016-9160
/branches/DEV-restapi-monitoringservers:9778
/branches/DEV-snmp-multi:7324-7376
/branches/US187:9403-9479
/branches/US198b:8875-8994
/branches/US310:9851-9873
/branches/US539:12178-12182
/branches/enterprise/BRAN-3.14:6874,6882,6956
/branches/enterprise/DEV-professional:6494-8475,8477-8478,8486,8490,8492,8494,8499-8500,8515,8518-8519,8524,8527-8529,8531-8532,8536,8538,8540-8544,8547-8552,8554,8557,8600-8601,8637,8749,8772,8897,8917,8944-8945,8947,8950-8952,8967,8969,8979,8982,8987,8998,9006,9008,9011,9013,9026,9033-9036,9038,9040,9042,9044,9048,9050-9053,9062,9064-9065,9069,9078,9081,9088,9096,9099-9101,9103,9105,9115,9118,9347,9353-9354,9411,9432,9445,9486,9538-9550,9569-9571,9620,9635,9637-9638,9645-9647,9693,9699,9721,9814,9825,9857,9879,9881,9939,10002,10029,10038-10041,10070,10086,10093,10345,10347,10388,10407,10481,10549,10560-10562,10565,10568,10571,10577,10932,11025,11035,11360-11612,11798-11799,12189,12322,12355,12401
/branches/nagvis-iframe:9764-9786
/branches/opsview2runtime:10960-11258
/branches/opsview2runtime_xs:11279-11303
/branches/us168:8759,8762-8763,8766-8768,8770,8774-8777,8794,8798-8799,8801-8803,8821-8822,8834,8837-8838,8932,8937,8947,8969,8977,8981,9004,9007,9009-9010,9012,9024,9049
/commercial/branches/BRAN-4.2:10944,11017
/commercial/branches/US306-slaves:9804-9823
/commercial/branches/US307-network-map:9685-9837
   + /branches/DEV-capside/release-3.9.0:6365-6370
/branches/DEV-extra-notification-data:6734-6746
/branches/DEV-odw-calculations:9016-9160
/branches/DEV-restapi-monitoringservers:9778
/branches/DEV-snmp-multi:7324-7376
/branches/US187:9403-9479
/branches/US198b:8875-8994
/branches/US310:9851-9873
/branches/US539:12178-12182
/branches/enterprise/BRAN-3.14:6874,6882,6956
/branches/enterprise/DEV-professional:6494-8475,8477-8478,8486,8490,8492,8494,8499-8500,8515,8518-8519,8524,8527-8529,8531-8532,8536,8538,8540-8544,8547-8552,8554,8557,8600-8601,8637,8749,8772,8897,8917,8944-8945,8947,8950-8952,8967,8969,8979,8982,8987,8998,9006,9008,9011,9013,9026,9033-9036,9038,9040,9042,9044,9048,9050-9053,9062,9064-9065,9069,9078,9081,9088,9096,9099-9101,9103,9105,9115,9118,9347,9353-9354,9411,9432,9445,9486,9538-9550,9569-9571,9620,9635,9637-9638,9645-9647,9693,9699,9721,9814,9825,9857,9879,9881,9939,10002,10029,10038-10041,10070,10086,10093,10345,10347,10388,10407,10481,10549,10560-10562,10565,10568,10571,10577,10932,11025,11035,11360-11612,11798-11799,12189,12322,12355,12401-12406
/branches/nagvis-iframe:9764-9786
/branches/opsview2runtime:10960-11258
/branches/opsview2runtime_xs:11279-11303
/branches/us168:8759,8762-8763,8766-8768,8770,8774-8777,8794,8798-8799,8801-8803,8821-8822,8834,8837-8838,8932,8937,8947,8969,8977,8981,9004,9007,9009-9010,9012,9024,9049
/commercial/branches/BRAN-4.2:10944,11017
/commercial/branches/US306-slaves:9804-9823
/commercial/branches/US307-network-map:9685-9837

Modified: trunk/opsview-core/bin/opsviewd
===================================================================
--- trunk/opsview-core/bin/opsviewd	2013-06-03 09:59:25 UTC (rev 12411)
+++ trunk/opsview-core/bin/opsviewd	2013-06-03 10:53:57 UTC (rev 12412)
@@ -248,6 +248,12 @@
                             kill 'TERM', $tunnels{$bad_slave}->pid;
                         }
                     }
+                    elsif ( $command eq "exec" ) {
+                        my @args = split( /\s+/, $line );
+                        shift @args; # skip exec
+                        $logger->info( "Executing command: @args" );
+                        exec(@args);
+                    }
                     else {
                         $logger->warn(
                             "Unknown command: $command ",
@@ -255,7 +261,7 @@
                         );
                     }
 
-                    exit; #  end of forked process:
+                    exit;            #  end of forked process:
                 }
 
                 END_COMMAND:

Modified: trunk/opsview-core/bin/send_opsview_cmd
===================================================================
--- trunk/opsview-core/bin/send_opsview_cmd	2013-06-03 09:59:25 UTC (rev 12411)
+++ trunk/opsview-core/bin/send_opsview_cmd	2013-06-03 10:53:57 UTC (rev 12412)
@@ -29,33 +29,20 @@
 
 use strict;
 use lib "/usr/local/nagios/perl/lib";
-use IO::Socket;
+use Opsview::DaemonClient;
 
 $| = 1;
 
-my $file = "/usr/local/nagios/var/rw/opsviewd.cmd";
-
 my $cmd = shift @ARGV || "Testing";
 
-if ( !-e $file ) {
-    die "opsviewd not running\n";
-}
+my $client = Opsview::DaemonClient->new();
 
+$client->check_daemon;
+
 if ( $cmd eq "daemoncheck" ) {
     print "opsviewd running\n";
     exit 0;
 }
 
-my $server = IO::Socket::UNIX->new(
-    Peer    => $file,
-    Type    => SOCK_STREAM,
-    Timeout => 10
-) or die "Bad: $!";
+$client->send( $cmd, @ARGV );
 
-print $server "$cmd @ARGV", $/;
-
-if ( $cmd eq "promote_mib" ) {
-    print $_ while (<$server>);
-}
-
-close($server);

Modified: trunk/opsview-core/filelist
===================================================================
--- trunk/opsview-core/filelist	2013-06-03 09:59:25 UTC (rev 12411)
+++ trunk/opsview-core/filelist	2013-06-03 10:53:57 UTC (rev 12412)
@@ -295,6 +295,7 @@
 f nagios:nagios 0644 /usr/local/nagios/lib/Opsview/Connections.pm lib/Opsview/Connections.pm
 f nagios:nagios 0644 /usr/local/nagios/lib/Opsview/Contact.pm lib/Opsview/Contact.pm
 f nagios:nagios 0644 /usr/local/nagios/lib/Opsview/Common.pm lib/Opsview/Common.pm
+f nagios:nagios 0644 /usr/local/nagios/lib/Opsview/DaemonClient.pm lib/Opsview/DaemonClient.pm
 d nagios:nagios 0755 /usr/local/nagios/lib/Opsview/DBIx
 f nagios:nagios 0644 /usr/local/nagios/lib/Opsview/DBIx/Class.pm lib/Opsview/DBIx/Class.pm
 d nagios:nagios 0755 /usr/local/nagios/lib/Opsview/DBIx/Class

Copied: trunk/opsview-core/lib/Opsview/DaemonClient.pm (from rev 12406, branches/enterprise/DEV-professional/opsview-core/lib/Opsview/DaemonClient.pm)
===================================================================
--- trunk/opsview-core/lib/Opsview/DaemonClient.pm	                        (rev 0)
+++ trunk/opsview-core/lib/Opsview/DaemonClient.pm	2013-06-03 10:53:57 UTC (rev 12412)
@@ -0,0 +1,49 @@
+
+package Opsview::DaemonClient;
+
+use strict;
+use warnings;
+
+use IO::Socket::UNIX;
+
+sub SERVER_SOCKET() {'/usr/local/nagios/var/rw/opsviewd.cmd'}
+
+sub new {
+    my $class = shift;
+
+    my $self = bless {@_}, $class;
+    return $self;
+}
+
+sub check_daemon {
+    if ( !-e SERVER_SOCKET() ) {
+        die "opsviewd not running\n";
+    }
+    return 1;
+}
+
+my %CMDS_WITH_RESPONSE = (
+    "promote_mib"     => 1,
+    "web_reload_sync" => 1,
+);
+
+sub send {
+    my ( $proto, $cmd, @msg ) = @_;
+
+    my $sock = IO::Socket::UNIX->new(
+        Peer    => SERVER_SOCKET(),
+        Type    => SOCK_STREAM,
+        Timeout => 10,
+    ) or die "opsviewd not running: $!\n";
+
+    $sock->print( "$cmd @msg\n" );
+
+    if ( exists $CMDS_WITH_RESPONSE{$cmd} ) {
+        while ( my $line = $sock->getline ) {
+            print $line;
+        }
+    }
+    $sock->close();
+}
+
+1;

_______________________________________________
Opsview-checkins mailing list
Opsview-checkins@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-checkins

Reply via email to