[Pkg-nagios-changes] [pkg-nagios-snmp-plugins] 01/03: Adding patchtes/21_check_snmp_load_abstract_snmp_version_check
Jan Wagner
waja at moszumanska.debian.org
Mon Oct 5 13:47:39 UTC 2015
This is an automated email from the git hooks/post-receive script.
waja pushed a commit to branch master
in repository pkg-nagios-snmp-plugins.
commit a8f8669e8253aa3107ab7016a992a9c2fa0260a6
Author: Jan Wagner <waja at cyconet.org>
Date: Fri Oct 2 09:48:10 2015 +0200
Adding patchtes/21_check_snmp_load_abstract_snmp_version_check
Via https://github.com/dnsmichi/manubulon-snmp/commit/846165c880793a97a2e727f4d13e23df40e8f1a4.patch
---
.../21_check_snmp_load_abstract_snmp_version_check | 121 +++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 122 insertions(+)
diff --git a/debian/patches/21_check_snmp_load_abstract_snmp_version_check b/debian/patches/21_check_snmp_load_abstract_snmp_version_check
new file mode 100644
index 0000000..21b43e1
--- /dev/null
+++ b/debian/patches/21_check_snmp_load_abstract_snmp_version_check
@@ -0,0 +1,121 @@
+From 846165c880793a97a2e727f4d13e23df40e8f1a4 Mon Sep 17 00:00:00 2001
+From: morgajel <morgajel at gmail.com>
+Date: Wed, 13 May 2015 12:33:21 -0400
+Subject: [PATCH] Abstracted snmp version check to circumvent error and bug
+
+There are two issues:
+1) Net::SNMP changed it's VERSION to be a quoted string rather than a bare mess. This caused
+Argument "v6.0.1" isn't numeric in numeric lt (<) at /opt/manubulon/plugins/check_snmp_load.pl line 368.
+
+2) the rest of the file used lt rather than <, which means they were using ascii sorting rather than digit comparison
+
+Both of these issues have now been resolved; This fix has only been applied to this one script, but it may
+need to be implemented in the other scripts.
+---
+ check_snmp_load.pl | 30 +++++++++++++++++++++---------
+ 1 file changed, 21 insertions(+), 9 deletions(-)
+
+diff --git a/check_snmp_load.pl b/check_snmp_load.pl
+index c8661aa..751c6ec 100755
+--- a/check_snmp_load.pl
++++ b/check_snmp_load.pl
+@@ -280,6 +280,18 @@ sub check_options {
+ }
+ }
+
++# This is required to get around all of the silly historical methods of
++# versioning with Net::SNMP.
++sub is_legacy_snmp_version {
++ my $version=Net::SNMP->VERSION; #using a variable for easier testing
++ if ($version=~/^\D*(\d)/ and $1 < 4){
++ print "$1 wee";
++ return 1;
++ }else{
++ return 0;
++ }
++}
++
+ ########## MAIN #######
+
+ check_options();
+@@ -365,7 +377,7 @@ sub check_options {
+ verb("Checking linux load");
+
+ # Get number of CPUs
+-my $resultat = (Net::SNMP->VERSION < 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_table($proc_id)
+ : $session->get_table(Baseoid => $proc_id);
+
+@@ -378,7 +390,7 @@ sub check_options {
+ my $ncpu = keys %$resultat;
+
+ # Get load table
+-$resultat = (Net::SNMP->VERSION lt 4) ?
++$resultat = (is_legacy_snmp_version()) ?
+ $session->get_table($linload_table)
+ : $session->get_table(Baseoid => $linload_table);
+
+@@ -445,7 +457,7 @@ sub check_options {
+
+ if ($o_check_type eq "cisco") {
+ my @oidlists = ($cisco_cpu_5m, $cisco_cpu_1m, $cisco_cpu_5s);
+-my $resultat = (Net::SNMP->VERSION lt 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_request(@oidlists)
+ : $session->get_request(-varbindlist => \@oidlists);
+
+@@ -499,7 +511,7 @@ sub check_options {
+ ############## Cisco N5K CPU Check ###################
+ if ($o_check_type eq "n5k") {
+ my @oidlists = ($n5k_cpu);
+-my $resultat = (Net::SNMP->VERSION lt 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_request(@oidlists)
+ : $session->get_request(-varbindlist => \@oidlists);
+ if (!defined($resultat)) {
+@@ -542,7 +554,7 @@ sub check_options {
+
+ if ($o_check_type eq "cata") {
+ my @oidlists = ($ciscocata_cpu_5m, $ciscocata_cpu_1m, $ciscocata_cpu_5s);
+-my $resultat = (Net::SNMP->VERSION lt 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_request(@oidlists)
+ : $session->get_request(-varbindlist => \@oidlists);
+
+@@ -597,7 +609,7 @@ sub check_options {
+
+ if ($o_check_type eq "nsc") {
+ my @oidlists = ($nsc_cpu_5m, $nsc_cpu_1m, $nsc_cpu_5s);
+-my $resultat = (Net::SNMP->VERSION lt 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_request(@oidlists)
+ : $session->get_request(-varbindlist => \@oidlists);
+
+@@ -654,7 +666,7 @@ sub check_options {
+ # Get load table
+ my @oidlist = $cpu_oid{$o_check_type};
+ verb("Checking OID : @oidlist");
+-my $resultat = (Net::SNMP->VERSION lt 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_request(@oidlist)
+ : $session->get_request(-varbindlist => \@oidlist);
+ if (!defined($resultat)) {
+@@ -702,7 +714,7 @@ sub check_options {
+ verb("Checking hpux load");
+
+ my @oidlists = ($hpux_load_1_min, $hpux_load_5_min, $hpux_load_15_min);
+-my $resultat = (Net::SNMP->VERSION lt 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_request(@oidlists)
+ : $session->get_request(-varbindlist => \@oidlists);
+
+@@ -755,7 +767,7 @@ sub check_options {
+
+ ########## Standard cpu usage check ############
+ # Get desctiption table
+-my $resultat = (Net::SNMP->VERSION lt 4) ?
++my $resultat = (is_legacy_snmp_version()) ?
+ $session->get_table($base_proc)
+ : $session->get_table(Baseoid => $base_proc);
+
diff --git a/debian/patches/series b/debian/patches/series
index aec3277..4a942c7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,5 +6,6 @@
18_check_snmp_process_tmp_file
19_check_snmp_load_n5k
20_check_snmp_load_multiple_cpus
+21_check_snmp_load_abstract_snmp_version_check
50_disable_epn
51_fix_privacy_doc
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-nagios/pkg-nagios-snmp-plugins.git
More information about the Pkg-nagios-changes
mailing list