From b346279b04fcd5df17831160caf24eaaa743ec35 Mon Sep 17 00:00:00 2001 From: Emanuele Trabattoni Date: Sat, 31 May 2025 18:46:13 +0200 Subject: [PATCH] Fix codice duplicato e errato reset vettore punti --- routermon/routermon.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/routermon/routermon.py b/routermon/routermon.py index 894bafa..596b630 100644 --- a/routermon/routermon.py +++ b/routermon/routermon.py @@ -23,6 +23,12 @@ class SignalHandler: def _handle_sigint(self, signum, frame): self.running = False +def convert_int(d: dict) -> dict: + for k,v in d.items(): + if str.isdecimal(v): + d[k] = int(v) + return d + def main(): INTERVAL = int(env['INTERVAL']) @@ -39,23 +45,18 @@ def main(): run: SignalHandler = SignalHandler() last = 0 - if_points = [] - if_stats_old = api.get_resource('/interface/ethernet').call('print', {'proplist': 'name,rx-bytes,tx-bytes'}) - for n,d in enumerate(if_stats_old): - for k,v in d.items(): - if str.isdecimal(v): - if_stats_old[n][k] = int(v) + if_stats_old = convert_int(api.get_resource('/interface/ethernet').call('print', {'proplist': 'name,rx-bytes,tx-bytes'})) + ### MAIN LOOP ### while run: try: now = time.time() + if_points: list[Point] = [] if_stats: list[dict] = api.get_resource('/interface/ethernet').call('print', {'proplist': 'name,rx-bytes,tx-bytes'}) - hw_stats: dict[str,str] = api.get_resource('/system/resource').call('print', {'proplist':'uptime,cpu-load,total-memory,free-memory'})[0] + hw_stats: dict[str,str] = convert_int(api.get_resource('/system/resource').call('print', {'proplist':'uptime,cpu-load,total-memory,free-memory'})[0]) # calcolo della velocita' interfaccia a ogni ciclo for n,d in enumerate(if_stats): - for k,v in d.items(): - if str.isdecimal(v): - if_stats[n][k] = int(v) + if_stats[n] = convert_int(d) if_stats[n]['rx-rate'] = int((if_stats[n]['rx-bytes']-if_stats_old[n]['rx-bytes'])/(now-last)) if_stats[n]['tx-rate'] = int((if_stats[n]['tx-bytes']-if_stats_old[n]['tx-bytes'])/(now-last)) if_points.append( @@ -68,7 +69,7 @@ def main(): hw_point = Point('resources') for k,v in hw_stats.items(): - hw_point.field(k,int(v) if v.isdecimal() else v) + hw_point.field(k,v) write_client.write(record=hw_point) if_stats_old = if_stats