1111"""See the check's README for more details.
1212"""
1313
14- import argparse # pylint: disable=C0413
15- import sys # pylint: disable=C0413
16-
17- import lib .base # pylint: disable=C0413
18- import lib .db_mysql # pylint: disable=C0413
19- import lib .human # pylint: disable=C0413
20- import lib .librenms # pylint: disable=C0413
21- import lib .time # pylint: disable=C0413
22- from lib .globals import (STATE_CRIT , STATE_OK , # pylint: disable=C0413
14+ import argparse
15+ import sys
16+
17+ import lib .base
18+ import lib .db_mysql
19+ import lib .human
20+ import lib .librenms
21+ import lib .time
22+ from lib .globals import (STATE_CRIT , STATE_OK ,
2323 STATE_UNKNOWN , STATE_WARN )
2424
2525__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
26- __version__ = '2025100601 '
26+ __version__ = '2026040801 '
2727
2828DESCRIPTION = """This check plugin retrieves sensor information for each device
2929 from a LibreNMS instance.
@@ -49,7 +49,7 @@ def parse_args():
4949 parser .add_argument (
5050 '-V' , '--version' ,
5151 action = 'version' ,
52- version = '%(prog)s: v{} by {}' . format ( __version__ , __author__ )
52+ version = f '%(prog)s: v{ __version__ } by { __author__ } '
5353 )
5454
5555 parser .add_argument (
@@ -96,12 +96,13 @@ def parse_args():
9696 help = 'Filter by LibreNMS Device Type (repeating).' ,
9797 dest = 'DEVICE_TYPE' ,
9898 action = 'append' ,
99- choices = [ # taken from the librenms source file misc /config_definitions.json
99+ choices = [ # taken from the librenms source file resources/definitions /config_definitions.json
100100 'appliance' ,
101101 'collaboration' ,
102102 'environment' ,
103103 'firewall' ,
104104 'loadbalancer' ,
105+ 'management' ,
105106 'network' ,
106107 'power' ,
107108 'printer' ,
@@ -159,7 +160,7 @@ def main():
159160
160161 # fetch data
161162 sql = '''
162- SELECT
163+ SELECT
163164 d.hostname,
164165 d.sysName,
165166 d.sysDescr,
@@ -197,14 +198,10 @@ def main():
197198 sql += ' AND dg.name LIKE %s '
198199 data .append (args .DEVICE_GROUP )
199200 if args .DEVICE_HOSTNAME :
200- sql += ' AND d.hostname IN ({}) ' .format (
201- ', ' .join ('%s' for d in args .DEVICE_HOSTNAME ), # print "%s" for each argument
202- )
201+ sql += f' AND d.hostname IN ({ ", " .join ("%s" for _ in args .DEVICE_HOSTNAME )} ) '
203202 data += args .DEVICE_HOSTNAME
204203 if args .DEVICE_TYPE :
205- sql += ' AND d.type IN ({}) ' .format (
206- ', ' .join ('%s' for d in args .DEVICE_TYPE ), # print "%s" for each argument
207- )
204+ sql += f' AND d.type IN ({ ", " .join ("%s" for _ in args .DEVICE_TYPE )} ) '
208205 data += args .DEVICE_TYPE
209206 sql += ' ORDER BY d.hostname, s.sensor_class'
210207 sensors = lib .base .coe (lib .db_mysql .select (conn , sql , data ))
@@ -218,11 +215,7 @@ def main():
218215 if sensor ['sensor_class' ] == 'state' :
219216 sensors [i ]['sensor_current' ] = sensor ['state_descr' ]
220217 if all ([sensor ['sensor_limit_low' ], sensor ['sensor_limit' ]]):
221- sensor ['sensor_current' ] = '{} ({}..{})' .format (
222- sensor ['sensor_current' ],
223- sensor ['sensor_limit_low' ],
224- sensor ['sensor_limit' ],
225- )
218+ sensor ['sensor_current' ] = f'{ sensor ["sensor_current" ]} ({ sensor ["sensor_limit_low" ]} ..{ sensor ["sensor_limit" ]} )'
226219 if sensor ['lastupdate' ]:
227220 delta = lib .time .now (as_type = 'datetime' ) - sensor ['lastupdate' ]
228221 sensor ['lastupdate' ] = lib .human .seconds2human (delta .total_seconds ())
@@ -246,19 +239,21 @@ def main():
246239 if state == STATE_OK :
247240 msg = 'Everything is ok. '
248241 else :
249- msg = 'There {} {} {}. ' .format (
250- lib .txt .pluralize ('' , alert_count , 'is,are' ),
251- alert_count ,
252- lib .txt .pluralize ('alert' , alert_count ),
253- )
254- msg += 'Checked {} {}.' .format (
255- sensors_count ,
256- lib .txt .pluralize ('sensor' , sensors_count ),
257- )
242+ msg = f'There { lib .txt .pluralize ("" , alert_count , "is,are" )} ' \
243+ f'{ alert_count } { lib .txt .pluralize ("alert" , alert_count )} . '
244+ msg += f'Checked { sensors_count } { lib .txt .pluralize ("sensor" , sensors_count )} .'
258245 msg += '\n \n '
259246
260- perfdata += lib .base .get_perfdata ('sensor_count' , sensors_count , None , None , None , 0 , None ) # pylint: disable=C0301
261- perfdata += lib .base .get_perfdata ('alert_count' , alert_count , None , None , None , 0 , None ) # pylint: disable=C0301
247+ perfdata += lib .base .get_perfdata (
248+ 'sensor_count' ,
249+ sensors_count ,
250+ _min = 0 ,
251+ )
252+ perfdata += lib .base .get_perfdata (
253+ 'alert_count' ,
254+ alert_count ,
255+ _min = 0 ,
256+ )
262257
263258 if sensors_count > 0 :
264259 if not args .LENGTHY :
@@ -313,5 +308,5 @@ def main():
313308if __name__ == '__main__' :
314309 try :
315310 main ()
316- except Exception : # pylint: disable=W0703
311+ except Exception :
317312 lib .base .cu ()
0 commit comments