1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00
Files
librenms-librenms-agent/snmp/redis.py

55 lines
1017 B
Python
Raw Normal View History

2020-05-14 23:27:47 +02:00
#!/usr/bin/env python3
import json
import subprocess
2020-05-14 23:27:47 +02:00
shell_cmd = "redis-cli info"
all_data = (
subprocess.Popen(shell_cmd, shell=True, stdout=subprocess.PIPE)
.stdout.read()
.split(b"\n")
)
2020-05-14 23:27:47 +02:00
version = 1
error = 0
error_string = ""
redis_data = {}
# stdout list to json
try:
category = ""
2020-05-14 23:27:47 +02:00
for d in all_data:
d = d.replace(b"\r", b"")
2020-05-14 23:27:47 +02:00
if d in [b""]:
2020-05-14 23:27:47 +02:00
continue
if d.startswith(b"#"):
category = d.replace(b"# ", b"").decode("utf-8")
2020-05-14 23:27:47 +02:00
redis_data[category] = {}
continue
if not len(category):
error = 2
error_string = "category not defined"
2020-05-14 23:27:47 +02:00
break
k, v = d.split(b":")
2020-05-14 23:27:47 +02:00
k = k.decode("utf-8")
v = v.decode("utf-8")
redis_data[category][k] = v
except:
error = 1
error_string = "data extracting error"
2020-05-14 23:27:47 +02:00
output = {
"version": version,
"error": error,
"errorString": error_string,
"data": redis_data,
}
2020-05-14 23:27:47 +02:00
print(json.dumps(output))