Title: [opsview] [11482] Updated check_snmp_weblogic_jmsmsgbridge to reinstate file read/write/check for previous state
- Revision
- 11482
- Author
- hstevenson
- Date
- 2013-02-14 17:14:16 +0000 (Thu, 14 Feb 2013)
Log Message
Updated check_snmp_weblogic_jmsmsgbridge to reinstate file read/write/check for previous state
Modified Paths
Modified: trunk/opsview-core/nagios-plugins/check_snmp_weblogic_jmsmsgbridge
===================================================================
--- trunk/opsview-core/nagios-plugins/check_snmp_weblogic_jmsmsgbridge 2013-02-14 17:09:46 UTC (rev 11481)
+++ trunk/opsview-core/nagios-plugins/check_snmp_weblogic_jmsmsgbridge 2013-02-14 17:14:16 UTC (rev 11482)
@@ -26,10 +26,12 @@
use lib "/opt/opsview/perl/lib/perl5", "$Bin/../lib";
use Net::SNMP;
use Opsview::NagiosPlugin::SNMP;
+use Storable qw(lock_store lock_retrieve);
-my $np = Opsview::NagiosPlugin::SNMP->new(
+my $shortname = "check_snmp_weblogic_jmsmsgbridge";
+my $np = Opsview::NagiosPlugin::SNMP->new(
usage => "Usage: %s",
- shortname => "check_snmp_weblogic_jmsmsgbridge",
+ shortname => $shortname,
version => "1.1",
blurb => "Checks state of JMS Messaging Bridge",
snmp => {
@@ -55,13 +57,30 @@
my $bridge_error_oid = ".1.3.6.1.4.1.140.625.354.1.22";
my $perfdata = "";
-my $store;
+
+#my $store;
my $bridge_oid;
my $max_use = 10 + int( rand(10) );
my $is_active;
my $s = $np->snmp;
+my $store_dir = "$Bin/../var/plugins/${shortname}";
+my $store;
+
+if ( !-d $store_dir ) {
+ mkpath($store_dir) || die "Unable to create $store_dir directory: $!", $/;
+}
+
+my $store_file =
+ $store_dir . "/" . $np->opts->hostname . "_" . $np->opts->bridge;
+
+if ( -f $store_file ) {
+
+ # if lock_retrieve fails, file is corrupt - just carry on with empty store
+ eval { $store = lock_retrieve($store_file); };
+}
+
# Call this when you know you'll get a single value back
sub get_oid_value {
our ( $oid, $result, $status, $returnstring );
@@ -142,6 +161,8 @@
$store->{$bridge_name}->{max_use} = $max_use;
}
+lock_store( $store, $store_file );
+
$is_active = get_oid_value( "$bridge_state_oid$bridge_oid" );
# Show appropriate message (we don't have a critical state)
_______________________________________________
Opsview-checkins mailing list
Opsview-checkins@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-checkins