import agent_util
import csv
import sys
def get_sysctl_dict():
sysctl = agent_util.which("sysctl")
status, output = agent_util.execute_command("%s -a" % sysctl)
if status != 0: raise Exception(output)
metadata = {}
for item in output.splitlines():
m = item.split(" = ")
try:
metadata[m[0]] = int(m[-1].strip())
except:
pass
return metadata
class SysctlPlugin(agent_util.Plugin):
textkey = "sysctl_v2"
label = "Sysctl"
@classmethod
def get_metadata(self, config):
status = agent_util.SUPPORTED
msg = None
# check if sysctl is even installed
installed = agent_util.which("sysctl")
if not installed:
self.log.info("sysctl binary not found")
status = agent_util.UNSUPPORTED
msg = "sysctl binary not found"
metadata = {}
if status is agent_util.SUPPORTED:
metadata = get_sysctl_dict()
data = {"sysctl": {"label": "Sysctl metric",
"options": None,
"status": status,
"error_message": msg,
"option_string": True
}
}
return data
def check(self, textkey, data, config):
metadata = get_sysctl_dict()
res = None
try:
res = metadata[data]
except:
pass
return res