check_nwc_health: Update to 5.7.1.3

This commit is contained in:
Jan Wagner 2016-07-13 14:59:26 +02:00
parent 96914b6c6e
commit 4c86b3906b
356 changed files with 76 additions and 22 deletions

View file

@ -1,3 +1,9 @@
* 2016-07-07 5.7.1.3
remove trailing Nul from Bintec memories
* 2016-07-07 5.7.1.2
Bintec doesn't like bulk requests
* 2016-06-16 5.7.1.1
repair a pull request.
* 2016-05-30 5.7.1 * 2016-05-30 5.7.1
update GLPlugin update GLPlugin
* 2016-05-28 5.7.0.3 * 2016-05-28 5.7.0.3

View file

@ -13,7 +13,7 @@ use Digest::MD5 qw(md5_hex);
use Errno; use Errno;
use Data::Dumper; use Data::Dumper;
our $AUTOLOAD; our $AUTOLOAD;
*VERSION = \'2.1'; *VERSION = \'2.1.3';
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
@ -636,6 +636,7 @@ sub load_my_extension {
} }
my $plugin_name = $Monitoring::GLPlugin::pluginname; my $plugin_name = $Monitoring::GLPlugin::pluginname;
$plugin_name =~ /check_(.*?)_health/; $plugin_name =~ /check_(.*?)_health/;
my $deprecated_class = "DBD::".(uc $1)."::Server";
$plugin_name = "Check".uc(substr($1, 0, 1)).substr($1, 1)."Health"; $plugin_name = "Check".uc(substr($1, 0, 1)).substr($1, 1)."Health";
foreach my $libpath (split(":", $self->opts->get("with-mymodules-dyn-dir"))) { foreach my $libpath (split(":", $self->opts->get("with-mymodules-dyn-dir"))) {
foreach my $extmod (glob $libpath."/".$plugin_name."*.pm") { foreach my $extmod (glob $libpath."/".$plugin_name."*.pm") {
@ -658,7 +659,8 @@ sub load_my_extension {
my $original_init = $self->can("init"); my $original_init = $self->can("init");
$self->compatibility_class() if $self->can('compatibility_class'); $self->compatibility_class() if $self->can('compatibility_class');
bless $self, "My$class"; bless $self, "My$class";
$self->compatibility_methods() if $self->can('compatibility_methods'); $self->compatibility_methods() if $self->can('compatibility_methods') &&
$self->isa($deprecated_class);
if ($self->isa("Monitoring::GLPlugin")) { if ($self->isa("Monitoring::GLPlugin")) {
my $new_init = $self->can("init"); my $new_init = $self->can("init");
if ($new_init == $original_init) { if ($new_init == $original_init) {
@ -1538,9 +1540,9 @@ sub AUTOLOAD {
$self->{components}->{$subsystem}->check(); $self->{components}->{$subsystem}->check();
$self->{components}->{$subsystem}->dump() $self->{components}->{$subsystem}->dump()
if $self->opts->verbose >= 2; if $self->opts->verbose >= 2;
} elsif ($AUTOLOAD =~ /^.*::(status_code|check_messages|nagios_exit|html_string|perfdata_string|selected_perfdata|check_thresholds|get_thresholds|opts)$/) { } elsif ($AUTOLOAD =~ /^.*::(status_code|check_messages|nagios_exit|html_string|perfdata_string|selected_perfdata|check_thresholds|get_thresholds|opts|pandora_string)$/) {
return $Monitoring::GLPlugin::plugin->$1(@params); return $Monitoring::GLPlugin::plugin->$1(@params);
} elsif ($AUTOLOAD =~ /^.*::(reduce_messages|reduce_messages_short|clear_messages|suppress_messages|add_html|add_perfdata|override_opt|create_opt|set_thresholds|force_thresholds)$/) { } elsif ($AUTOLOAD =~ /^.*::(reduce_messages|reduce_messages_short|clear_messages|suppress_messages|add_html|add_perfdata|override_opt|create_opt|set_thresholds|force_thresholds|add_pandora)$/) {
$Monitoring::GLPlugin::plugin->$1(@params); $Monitoring::GLPlugin::plugin->$1(@params);
} elsif ($AUTOLOAD =~ /^.*::mod_arg_(.*)$/) { } elsif ($AUTOLOAD =~ /^.*::mod_arg_(.*)$/) {
return $Monitoring::GLPlugin::plugin->mod_arg($1, @params); return $Monitoring::GLPlugin::plugin->mod_arg($1, @params);

View file

@ -218,6 +218,28 @@ sub add_perfdata {
if $self->selected_perfdata($label); if $self->selected_perfdata($label);
} }
sub add_pandora {
my ($self, %args) = @_;
my $label = $args{label};
my $value = $args{value};
if ($args{help}) {
push @{$self->{pandora}}, sprintf("# HELP %s %s", $label, $args{help});
}
if ($args{type}) {
push @{$self->{pandora}}, sprintf("# TYPE %s %s", $label, $args{type});
}
if ($args{labels}) {
push @{$self->{pandora}}, sprintf("%s{%s} %s", $label,
join(",", map {
sprintf '%s="%s"', $_, $args{labels}->{$_};
} keys %{$args{labels}}),
$value);
} else {
push @{$self->{pandora}}, sprintf("%s %s", $label, $value);
}
}
sub add_html { sub add_html {
my ($self, $line) = @_; my ($self, $line) = @_;
push @{$self->{html}}, $line; push @{$self->{html}}, $line;
@ -322,6 +344,15 @@ sub perfdata_string {
} }
} }
sub metrics_string {
my ($self) = @_;
if (scalar (@{$self->{metrics}})) {
return join("\n", @{$self->{metrics}});
} else {
return "";
}
}
sub html_string { sub html_string {
my ($self) = @_; my ($self) = @_;
if (scalar (@{$self->{html}})) { if (scalar (@{$self->{html}})) {

View file

@ -1658,6 +1658,12 @@ sub get_snmp_table_objects {
return @entries; return @entries;
} }
sub bulk_is_baeh {
my ($self, $maxrepetitions) = @_;
$maxrepetitions ||= 1;
$Monitoring::GLPlugin::SNMP::maxrepetitions = $maxrepetitions;
}
################################################################ ################################################################
# 3rd level functions. calling net::snmp-functions # 3rd level functions. calling net::snmp-functions
# #
@ -1955,6 +1961,11 @@ sub get_table {
$params{-contextengineid} = $self->opts->contextengineid if $self->opts->contextengineid; $params{-contextengineid} = $self->opts->contextengineid if $self->opts->contextengineid;
$params{-contextname} = $self->opts->contextname if $self->opts->contextname; $params{-contextname} = $self->opts->contextname if $self->opts->contextname;
} }
if ($Monitoring::GLPlugin::SNMP::maxrepetitions) {
# some devices (Bintec) don't like bulk-requests. They call bulk_is_baeh(), so
# we immediately send get-next
$params{'-maxrepetitions'} = $Monitoring::GLPlugin::SNMP::maxrepetitions;
}
$self->debug(sprintf "get_table %s", Data::Dumper::Dumper(\%params)); $self->debug(sprintf "get_table %s", Data::Dumper::Dumper(\%params));
my $result = $Monitoring::GLPlugin::SNMP::session->get_table(%params); my $result = $Monitoring::GLPlugin::SNMP::session->get_table(%params);
$self->debug(sprintf "get_table returned %d oids", scalar(keys %{$result})); $self->debug(sprintf "get_table returned %d oids", scalar(keys %{$result}));

Some files were not shown because too many files have changed in this diff Show more