ok

Mini Shell

Direktori : /lib/fm-agent/plugins/
Upload File :
Current File : //lib/fm-agent/plugins/sysctl.py

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


Zerion Mini Shell 1.0