mirror of
https://github.com/librenms/librenms-agent.git
synced 2024-05-09 09:54:52 +00:00
* Format with isort * Format with Black * Fix CRLF * Format with shellcheck * Fix some warning * Fix PHP style * Dont modifiy check_mk files * Fixes
55 lines
1017 B
Python
Executable File
55 lines
1017 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import json
|
|
import subprocess
|
|
|
|
shell_cmd = "redis-cli info"
|
|
all_data = (
|
|
subprocess.Popen(shell_cmd, shell=True, stdout=subprocess.PIPE)
|
|
.stdout.read()
|
|
.split(b"\n")
|
|
)
|
|
|
|
version = 1
|
|
error = 0
|
|
error_string = ""
|
|
redis_data = {}
|
|
|
|
# stdout list to json
|
|
try:
|
|
category = ""
|
|
for d in all_data:
|
|
d = d.replace(b"\r", b"")
|
|
|
|
if d in [b""]:
|
|
continue
|
|
|
|
if d.startswith(b"#"):
|
|
category = d.replace(b"# ", b"").decode("utf-8")
|
|
redis_data[category] = {}
|
|
continue
|
|
|
|
if not len(category):
|
|
error = 2
|
|
error_string = "category not defined"
|
|
break
|
|
|
|
k, v = d.split(b":")
|
|
k = k.decode("utf-8")
|
|
v = v.decode("utf-8")
|
|
|
|
redis_data[category][k] = v
|
|
|
|
except:
|
|
error = 1
|
|
error_string = "data extracting error"
|
|
|
|
output = {
|
|
"version": version,
|
|
"error": error,
|
|
"errorString": error_string,
|
|
"data": redis_data,
|
|
}
|
|
|
|
print(json.dumps(output))
|