Author: glen                         Date: Mon Mar  1 15:03:01 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- initial

---- Files affected:
packages/nagios-plugin-check_asterisk_skype:
   check_asterisk_skype (NONE -> 1.1)  (NEW), check_asterisk_skype.cfg (NONE -> 
1.1)  (NEW), nagios-plugin-check_asterisk_skype.spec (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype
diff -u /dev/null 
packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.1
--- /dev/null   Mon Mar  1 16:03:01 2010
+++ packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype    Mon Mar 
 1 16:02:53 2010
@@ -0,0 +1,98 @@
+#!/usr/bin/perl -w
+# 2010 Elan Ruusamäe <[email protected]>
+# License: GPL v2
+
+use strict;
+use Getopt::Long;
+my(%opts);
+my(%ERRORS) = (OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3);
+my($VERSION) = '0.1';
+my($message, $status);
+
+#####################################################################
+sub print_usage() {
+       print "Usage: check_asterisk_skype\n";
+       print "       check_raid -v\n";
+       print "       check_raid -h\n";
+}
+
+sub print_help() {
+       print "check_asterisk_skype, v$VERSION\n";
+       print "Copyright (c) 2010 Elan Ruusamäe <[email protected]>
+
+This plugin reports the asterisk skype status
+";
+       print_usage();
+}
+
+sub check_skype_license {
+       open(my $fh , "asterisk -rx 'skype show licenses' 2>&1 |") or die $!;
+       my $channels = 0;
+       while (<$fh>) {
+               chomp;
+
+               if (my($file, $key, $expires, $hostid, $channels, $status) = m/
+                       File:\s+(\S+)\s+--\s+
+                       Key:\s+(\S+)\s+--\s+
+                       Expires:\s+([-\d]+)\s+--\s+
+                       Host-ID:\s+([\da-f:]+)\s+--\s+
+                       Channels:\s+(\d+)\s+\((\S+)\)
+                       /x) {
+                       $message .= "License $status: $channels channels, 
expires $expires";
+                       if ($status ne 'OK') {
+                               $status = $ERRORS{CRITICAL};
+                       }
+                       next;
+               }
+
+               # This cames from STDERR actually.
+               if (/Unable to connect/) {
+                       $status = $ERRORS{CRITICAL};
+                       $message .= $_;
+                       return;
+               }
+       }
+       close $fh;
+}
+
+#####################################################################
+$ENV{'BASH_ENV'} = '';
+$ENV{'ENV'} = '';
+
+Getopt::Long::Configure('bundling');
+GetOptions(
+       "v" => \$opts{v}, "version" => \$opts{v},
+       "h" => \$opts{h}, "help" => \$opts{h},
+       "d" => \$opts{d}, "debug" => \$opts{d},
+);
+
+if ($opts{v}) {
+       print "check_raid Version $VERSION\n";
+       exit $ERRORS{'OK'};
+}
+if ($opts{h}) {
+       print_help();
+       exit $ERRORS{'OK'};
+}
+
+$status = $ERRORS{OK};
+$message = '';
+
+check_skype_license;
+
+if ($message) {
+       if ($status == $ERRORS{OK}) {
+               print "OK: ";
+       } elsif ($status == $ERRORS{WARNING}) {
+               print "WARNING: ";
+       } elsif ($status == $ERRORS{CRITICAL}) {
+               print "CRITICAL: ";
+       } else {
+               print "UNKNOWN: ";
+       }
+       print "$message\n";
+} else {
+       $status = $ERRORS{UNKNOWN};
+       print "Something went very wrong.\n";
+}
+exit $status;

================================================================
Index: packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype.cfg
diff -u /dev/null 
packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype.cfg:1.1
--- /dev/null   Mon Mar  1 16:03:01 2010
+++ packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype.cfg        
Mon Mar  1 16:02:53 2010
@@ -0,0 +1,19 @@
+# Usage:
+# check_asterisk_skype
+define command {
+       command_name    check_asterisk_skype
+       command_line    @plugindir@/check_asterisk_skype $ARG1$
+}
+
+define service {
+       use                     generic-service
+       name                    asterisk_skype
+       service_description     asterisk_skype
+       register                0
+
+       normal_check_interval   30
+       retry_check_interval    5
+       notification_interval   3600
+
+       check_command           check_asterisk_skype
+}

================================================================
Index: 
packages/nagios-plugin-check_asterisk_skype/nagios-plugin-check_asterisk_skype.spec
diff -u /dev/null 
packages/nagios-plugin-check_asterisk_skype/nagios-plugin-check_asterisk_skype.spec:1.1
--- /dev/null   Mon Mar  1 16:03:01 2010
+++ 
packages/nagios-plugin-check_asterisk_skype/nagios-plugin-check_asterisk_skype.spec
 Mon Mar  1 16:02:53 2010
@@ -0,0 +1,47 @@
+# $Revision$, $Date$
+%define                plugin  check_asterisk_skype
+Summary:       Nagios plugin to check Skype plugin status in Asterisk
+Name:          nagios-plugin-%{plugin}
+Version:       0.1
+Release:       0.1
+License:       GPL v2
+Group:         Networking
+Source0:       %{plugin}
+Source1:       %{plugin}.cfg
+Requires:      nagios-core
+Requires:      perl-base >= 1:5.8.0
+BuildArch:     noarch
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define                _sysconfdir     /etc/nagios/plugins
+%define                plugindir       %{_prefix}/lib/nagios/plugins
+
+%description
+This plugin checks for Skype license in Asterisk.
+
+%prep
+%setup -qcT
+cp -p %{SOURCE0} %{plugin}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{plugindir}}
+install -p %{plugin} $RPM_BUILD_ROOT%{plugindir}/%{plugin}
+sed -e 's,@plugindir@,%{plugindir},' %{SOURCE1} > 
$RPM_BUILD_ROOT%{_sysconfdir}/%{plugin}.cfg
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{plugin}.cfg
+%attr(755,root,root) %{plugindir}/%{plugin}
+
+%define date   %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
+%changelog
+* %{date} PLD Team <[email protected]>
+All persons listed below can be reached at <cvs_login>@pld-linux.org
+
+$Log$
+Revision 1.1  2010/03/01 15:02:53  glen
+- initial
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to