ok

Mini Shell

Direktori : /usr/lib/fm-agent/plugins/
Upload File :
Current File : //usr/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