From 4d405fcb7f5f465fd0ba60eafd274ecc2ce65329 Mon Sep 17 00:00:00 2001 From: Antoine Van Elstraete Date: Fri, 29 Oct 2021 17:02:16 +0200 Subject: [PATCH] bug fixes and fieldnames protection --- mikrotik_ | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mikrotik_ b/mikrotik_ index 3563b50..0a00219 100755 --- a/mikrotik_ +++ b/mikrotik_ @@ -6,22 +6,23 @@ def config(name, port_max, ports_label): print(f"graph_title Network flow for {name}") print("graph_order down up") print("graph_args --base 1000") - print("graph_vlabel bits in (-) / out (+) per ${graph_period}") + print("graph_vlabel in (-) / out (+)") for port in range(1, port_max + 1): print(f"down{port}.label {ports_label[port - 1]}") print(f"down{port}.type DERIVE") print(f"down{port}.graph no") - print(f"down{port}.cdef down,8,*") + print(f"down{port}.cdef down{port},8,*") for port in range(1, port_max + 1): print(f"up{port}.label {ports_label[port - 1]}") print(f"up{port}.type DERIVE") - print(f"up{port}.negative down") - print(f"up{port}.cdef up,8,*") + print(f"up{port}.negative down{port}") + print(f"up{port}.cdef up{port},8,*") if __name__ == '__main__': from sys import argv import subprocess + import re ports_label = [] InOctets = [] OutOctets = [] @@ -32,8 +33,11 @@ if __name__ == '__main__': for line in result.splitlines(): if "sysName" in line: name = line.split()[-1] + name = re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", name) if "ifDescr" in line: - ports_label.append(line.split()[-1]) + label = (line.split()[-1]) + label = re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", label) + ports_label.append(label) if "ifIndex" in line: port_max += 1 if "ifInOctets" in line: