enh(netvision5-6): new mode battery (#5549)

Co-authored-by: gbin2265 <gebiwork@hotmail.com>
This commit is contained in:
sfarouq-ext 2025-04-24 10:19:41 +02:00 committed by GitHub
parent 7efc01dec9
commit 758b35773e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 117 additions and 70 deletions

View File

@ -102,6 +102,14 @@ sub set_counters {
{ template => '%s', unit => 'C' }
]
}
},
{ label => 'temperatureambient', nlabel => 'battery.temperatureambient.celsius', display_ok => 0, set => {
key_values => [ { name => 'temperatureambient', no_value => 0 } ],
output_template => 'temperatureambient: %s C',
perfdatas => [
{ template => '%s', unit => 'C' }
]
}
}
];
}
@ -130,19 +138,21 @@ my $map_status_v5 = {
my $mapping = {
netvision5 => {
status => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.1', map => $map_status_v5 }, # upsBatteryStatus
minute_remain => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.3' }, # upsEstimatedMinutesRemaining
charge_remain => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.4' }, # upsEstimatedChargeRemaining
voltage => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.5' }, # upsBatteryVoltage (dV)
temperature => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.6' } # upsBatteryTemperature (degrees Centigrade)
status => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.1', map => $map_status_v5 }, # upsBatteryStatus
minute_remain => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.3' }, # upsEstimatedMinutesRemaining
charge_remain => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.4' }, # upsEstimatedChargeRemaining
voltage => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.5' }, # upsBatteryVoltage (dV)
temperature => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.7' }, # upsBatteryTemperature (degrees Centigrade)
temperatureambient => { oid => '.1.3.6.1.4.1.4555.1.1.1.1.2.6' } # upsAmbientTemperature (degrees Centigrade)
},
netvision6 => {
status => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.1', map => $map_status_v6 }, # upsBatteryStatus
minute_remain => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.3' }, # upsEstimatedMinutesRemaining
charge_remain => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.4' }, # upsEstimatedChargeRemaining
voltage => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.5' }, # upsBatteryVoltage (dV)
temperature => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.6' }, # upsBatteryTemperature (degrees Centigrade)
current => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.8' } # upsBatteryCurrent (dA)
status => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.1', map => $map_status_v6 }, # upsBatteryStatus
minute_remain => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.3' }, # upsEstimatedMinutesRemaining
charge_remain => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.4' }, # upsEstimatedChargeRemaining
voltage => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.5' }, # upsBatteryVoltage (dV)
temperature => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.6' }, # upsBatteryTemperature (degrees Centigrade)
temperatureambient => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.7' }, # upsAmbientTemperature (degrees Centigrade)
current => { oid => '.1.3.6.1.4.1.4555.1.1.7.1.2.8' } # upsBatteryCurrent (dA)
}
};
@ -167,6 +177,7 @@ sub manage_selection {
$self->{global}->{voltage} = (defined($self->{global}->{voltage}) && $self->{global}->{voltage} =~ /\d/ && $self->{global}->{voltage} != -1 && $self->{global}->{voltage} != 65535) ?
$self->{global}->{voltage} * 0.1 : 0;
$self->{global}->{temperature} = (defined($self->{global}->{temperature}) && $self->{global}->{temperature} =~ /\d/) ? $self->{global}->{temperature} * 0.1 : 0;
$self->{global}->{temperatureambient} = (defined($self->{global}->{temperatureambient}) && $self->{global}->{temperatureambient} =~ /\d/) ? $self->{global}->{temperatureambient} * 0.1 : 0;
$self->{global}->{minute_remain} = (defined($self->{global}->{minute_remain}) && $self->{global}->{minute_remain} =~ /\d/ && $self->{global}->{minute_remain} != -1) ? $self->{global}->{minute_remain} : 'unknown';
$self->{global}->{charge_remain} = (defined($self->{global}->{charge_remain}) && $self->{global}->{charge_remain} =~ /\d/) ? $self->{global}->{charge_remain} : undef;
}
@ -200,7 +211,7 @@ You can use the following variables: %{status}
Thresholds.
Can be: 'charge-remaining' (%), 'charge-remaining-minutes',
'current' (A), 'voltage' (V), 'temperature' (C).
'current' (A), 'voltage' (V), 'temperature' (C), 'temperatureambient' (C).
=back

View File

@ -0,0 +1,37 @@
*** Settings ***
Documentation Hardware UPS Socomec Netvision SNMP plugin
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}..${/}resources/import.resource
Test Timeout 120s
*** Variables ***
${CMD} ${CENTREON_PLUGINS} --plugin=hardware::ups::socomec::netvision::snmp::plugin
*** Test Cases ***
Battery ${tc}
[Tags] hardware ups snmp
${command} Catenate
... ${CMD}
... --mode=battery
... --hostname=${HOSTNAME}
... --snmp-version=${SNMPVERSION}
... --snmp-port=${SNMPPORT}
... --snmp-community=hardware/ups/socomec/netvision/snmp/netvision5 #netvision5 has no current(A) values
... ${extra_options}
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
Examples: tc extra_options expected_result --
... 1 {EMPTY} OK: battery status is normal - charge remaining: 100% (0 minutes remaining) | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;;;;
... 2 --warning-charge-remaining=50 --critical-charge-remaining=100 WARNING: charge remaining: 100% (0 minutes remaining) | 'battery.charge.remaining.percent'=100%;0:50;0:100;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;;;;
... 3 --warning-charge-remaining-minutes=10 --critical-charge-remaining-minutes=0 OK: battery status is normal - charge remaining: 100% (0 minutes remaining) | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;0:10;0:0;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;;;;
... 4 --warning-voltage=330 --critical-voltage=550 WARNING: voltage: 339.1 V | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;0:330;0:550;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;;;;
... 5 --warning-temperature=0 --critical-temperature=10 WARNING: temperature: 2 C | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;0:0;0:10;; 'battery.temperatureambient.celsius'=2.2C;;;;
... 6 --warning-temperatureambient=3 --critical-temperatureambient=1 CRITICAL: temperatureambient: 2.2 C | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;0:3;0:1;;
... 7 --unknown-status='\\\%{status} =~ /normal/i' UNKNOWN: battery status is normal | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;;;;
... 8 --warning-status='\\\%{status} =~ /normal/i' WARNING: battery status is normal | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;;;;
... 9 --critical-status='\\\%{status} =~ /normal/i' CRITICAL: battery status is normal | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=2C;;;; 'battery.temperatureambient.celsius'=2.2C;;;;

View File

@ -0,0 +1,38 @@
*** Settings ***
Documentation Hardware UPS Socomec Netvision SNMP plugin
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}..${/}resources/import.resource
Test Timeout 120s
*** Variables ***
${CMD} ${CENTREON_PLUGINS} --plugin=hardware::ups::socomec::netvision::snmp::plugin
*** Test Cases ***
Battery ${tc}
[Tags] hardware ups snmp
${command} Catenate
... ${CMD}
... --mode=battery
... --hostname=${HOSTNAME}
... --snmp-version=${SNMPVERSION}
... --snmp-port=${SNMPPORT}
... --snmp-community=hardware/ups/socomec/netvision/snmp/netvision6
... ${extra_options}
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
Examples: tc extra_options expected_result --
... 1 {EMPTY} OK: battery status is normal - charge remaining: 100% (10 minutes remaining) | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;
... 2 --warning-charge-remaining=50 --critical-charge-remaining=100 WARNING: charge remaining: 100% (10 minutes remaining) | 'battery.charge.remaining.percent'=100%;0:50;0:100;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;
... 3 --warning-charge-remaining-minutes=10 --critical-charge-remaining-minutes=5 CRITICAL: minutes remaining: 10 | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;0:10;0:5;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;
... 4 --warning-voltage=520 --critical-voltage=550 WARNING: voltage: 534 V | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;0:520;0:550;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;
... 5 --warning-temperature=5 --critical-temperature=10 OK: battery status is normal - charge remaining: 100% (10 minutes remaining) | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;0:5;0:10;; 'battery.temperatureambient.celsius'=19C;;;;
... 6 --warning-temperatureambient=3 --critical-temperatureambient=10 CRITICAL: temperatureambient: 19 C | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;0:3;0:10;;
... 7 --unknown-status='\\\%{status} =~ /normal/i' UNKNOWN: battery status is normal | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;
... 8 --warning-status='\\\%{status} =~ /normal/i' WARNING: battery status is normal | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;
... 9 --critical-status='\\\%{status} =~ /normal/i' CRITICAL: battery status is normal | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;;;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;
... 10 --warning-current=0 --critical-current=100 WARNING: current: 2.3 A | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=10;;;0; 'battery.current.ampere'=2.3A;0:0;0:100;0; 'battery.voltage.volt'=534V;;;; 'battery.temperature.celsius'=2.2C;;;; 'battery.temperatureambient.celsius'=19C;;;;

View File

@ -1,11 +0,0 @@
.1.3.6.1.4.1.4555.1.1.7.1.2.1.0 = INTEGER: 2
.1.3.6.1.4.1.4555.1.1.7.1.2.3.0 = INTEGER: 0
.1.3.6.1.4.1.4555.1.1.7.1.2.4.0 = INTEGER: 100
.1.3.6.1.4.1.4555.1.1.7.1.2.5.0 = INTEGER: 3391
.1.3.6.1.4.1.4555.1.1.7.1.2.6.0 = INTEGER: 220
.1.3.6.1.4.1.4555.1.1.7.1.2.8.0 = INTEGER: 0
.1.3.6.1.4.1.4555.1.1.1.1.2.1.0 = INTEGER: 2
.1.3.6.1.4.1.4555.1.1.1.1.2.3.0 = INTEGER: 0
.1.3.6.1.4.1.4555.1.1.1.1.2.4.0 = INTEGER: 100
.1.3.6.1.4.1.4555.1.1.1.1.2.5.0 = INTEGER: 3391
.1.3.6.1.4.1.4555.1.1.1.1.2.6.0 = INTEGER: 22

View File

@ -1,44 +0,0 @@
*** Settings ***
Documentation Hardware UPS Socomec Netvision SNMP plugin
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}..${/}resources/import.resource
Test Timeout 120s
*** Variables ***
${CMD} ${CENTREON_PLUGINS} --plugin=hardware::ups::socomec::netvision::snmp::plugin
*** Test Cases ***
Battery ${tc}/4
[Tags] hardware ups snmp
${command} Catenate
... ${CMD}
... --mode=battery
... --hostname=${HOSTNAME}
... --snmp-version=${SNMPVERSION}
... --snmp-port=${SNMPPORT}
... --snmp-community=hardware/ups/socomec/netvision/snmp/battery
# Append options to command
${opt} Append Option --warning-temperature ${w_temperature}
${command} Catenate ${command} ${opt}
${opt} Append Option --critical-temperature ${c_temperature}
${command} Catenate ${command} ${opt}
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
Examples: tc w_temperature c_temperature expected_result --
... 1 30 50 OK: battery status is normal - charge remaining: 100% (0 minutes remaining) | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=22C;0:30;0:50;;
... 2 20 50 WARNING: temperature: 22 C | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=22C;0:20;0:50;;
... 3 10 20 CRITICAL: temperature: 22 C | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=22C;0:10;0:20;;
... 4 _empty_ _empty_ OK: battery status is normal - charge remaining: 100% (0 minutes remaining) | 'battery.charge.remaining.percent'=100%;;;0;100 'battery.charge.remaining.minutes'=0;;;0; 'battery.voltage.volt'=339.1V;;;; 'battery.temperature.celsius'=22C;;;;
*** Keywords ***
Append Option
[Documentation] Concatenates the first argument (option) with the second (value) after having replaced the value with "" if its content is '_empty_'
[Arguments] ${option} ${value}
${value} Set Variable If '${value}' == '_empty_' '' ${value}
RETURN ${option}=${value}

View File

@ -0,0 +1,6 @@
.1.3.6.1.4.1.4555.1.1.1.1.2.1.0 = INTEGER: 2
.1.3.6.1.4.1.4555.1.1.1.1.2.3.0 = INTEGER: 0
.1.3.6.1.4.1.4555.1.1.1.1.2.4.0 = INTEGER: 100
.1.3.6.1.4.1.4555.1.1.1.1.2.5.0 = INTEGER: 3391
.1.3.6.1.4.1.4555.1.1.1.1.2.6.0 = INTEGER: 22
.1.3.6.1.4.1.4555.1.1.1.1.2.7.0 = INTEGER: 20

View File

@ -0,0 +1,9 @@
.1.3.6.1.4.1.4555.1.1.7.1.2.1.0 = INTEGER: 2
.1.3.6.1.4.1.4555.1.1.7.1.2.2.0 = INTEGER: 0
.1.3.6.1.4.1.4555.1.1.7.1.2.3.0 = INTEGER: 10
.1.3.6.1.4.1.4555.1.1.7.1.2.4.0 = INTEGER: 100
.1.3.6.1.4.1.4555.1.1.7.1.2.5.0 = INTEGER: 5340
.1.3.6.1.4.1.4555.1.1.7.1.2.6.0 = INTEGER: 22
.1.3.6.1.4.1.4555.1.1.7.1.2.7.0 = INTEGER: 190
.1.3.6.1.4.1.4555.1.1.7.1.2.8.0 = INTEGER: 23
.1.3.6.1.4.1.4555.1.1.7.1.2.9.0 = INTEGER: 25

View File

@ -253,6 +253,7 @@ SysVol
TCP
teampass
Teldat
temperatureambient
timeframe
TiMOS
TMM