From 50a49e5e77d1bba25d2641b0861113b7411f3d0e Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Tue, 24 Nov 2015 11:51:27 +0100 Subject: [PATCH] + Enhance cisco standard hardware mode (some cases) --- .../common/cisco/standard/snmp/mode/components/physical.pm | 5 +++++ .../cisco/standard/snmp/mode/components/temperature.pm | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/physical.pm b/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/physical.pm index 999930181..2f48c0f48 100644 --- a/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/physical.pm +++ b/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/physical.pm @@ -56,6 +56,11 @@ sub check { my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$oid_cefcPhysicalStatus}, instance => $instance); my $physical_descr = $self->{results}->{$oid_entPhysicalDescr}->{$oid_entPhysicalDescr . '.' . $instance}; + if (!defined($physical_descr)) { + $self->{output}->output_add(long_msg => sprintf("skipped instance '%s': no description", $instance)); + next; + } + next if ($self->check_exclude(section => 'physical', instance => $instance)); $self->{components}->{physical}->{total}++; diff --git a/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/temperature.pm b/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/temperature.pm index 833eea2f4..11c143960 100644 --- a/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/temperature.pm +++ b/centreon-plugins/centreon/common/cisco/standard/snmp/mode/components/temperature.pm @@ -64,7 +64,7 @@ sub check { $self->{output}->output_add(long_msg => sprintf("Temperature '%s' status is %s [instance: %s] [value: %s C]", $result->{ciscoEnvMonTemperatureStatusDescr}, $result->{ciscoEnvMonTemperatureState}, - $instance, $result->{ciscoEnvMonTemperatureStatusValue})); + $instance, defined($result->{ciscoEnvMonTemperatureStatusValue}) ? $result->{ciscoEnvMonTemperatureStatusValue} : '-')); my $exit = $self->get_severity(section => 'temperature', value => $result->{ciscoEnvMonTemperatureState}); if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit, @@ -72,6 +72,8 @@ sub check { $result->{ciscoEnvMonTemperatureStatusDescr}, $result->{ciscoEnvMonTemperatureState})); } + next if (!defined($result->{ciscoEnvMonTemperatureStatusValue})); + my ($exit2, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'temperature', instance => $instance, value => $result->{ciscoEnvMonTemperatureStatusValue}); if ($checked == 0) { my $warn_th = undef;