ok

Mini Shell

Direktori : /bin/fm-agent/
Upload File :
Current File : //bin/fm-agent/fm_agent.py

#!/usr/bin/env python

import sys
import platform
import os

ACCEPTABLE_SYNC_DELAY = 20
AGG_URL = "rx.us01.fortimonitor.com"
BASE_CONFIG_DIR = "/etc"
BASE_CUSTOM_PLUGIN_DIR = "/usr/share"
BASE_DATA_DIR = "/var/lib"
BASE_LOG_DIR = "/var/log"
BIN_DIR = "/usr/bin/fm-agent"
BRAND = "fm"
LIB_DIR = "/usr/lib/fm-agent"
PKG_DIR = "fm-agent"
STARTUP_TIMEOUT = 2  # In minutes
USER = "fm-agent"
VERSION = "2025.2.14"

if "freebsd" in sys.platform.lower():
    sys.path.insert(0, "/usr/local/fm-agent/lib/dependencies")

    # Add platform/version-specific dependency directory if present
    version = sys.version_info
    sys.path.insert(
        0,
        "/usr/local/fm-agent/lib/dependencies/%s/python%s.%s"
        % (sys.platform, version[0], version[1]),
    )
    sys.path.insert(0, "/usr/local/fm-agent/lib/library")

    BASE_CONFIG_DIR = "/usr/local/etc"
    BIN_DIR = "/usr/local/fm-agent/bin"
    LIB_DIR = "/usr/local/fm-agent/lib"

elif "darwin" == sys.platform.lower():
    filePath = os.path.realpath(__file__)
    agent_bin, _ = os.path.split(filePath)
    agent_version_dir = os.path.split(agent_bin)[0]
    agent_home = os.path.split(agent_version_dir)[0]

    architecture = None
    import subprocess

    with subprocess.Popen(
        "arch", shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE
    ) as p:
        try:
            stdout, stderr = p.communicate(timeout=5.0)
            architecture = stdout.decode("utf-8").strip()
        except subprocess.TimeoutExpired:
            p.kill()

    if architecture is None:
        sys.stderr.write("Could not determine machine architecture\n")
        sys.exit(-12)

    svi = sys.version_info
    py_executable_root = os.path.join(
        os.path.dirname(os.path.dirname(sys.executable)),
        "lib/python{}.{}/site-packages".format(svi.major, svi.minor),
    )

    searchPaths = [
        "lib",
        "lib/library",
        "{}/{}".format(py_executable_root, architecture),
        "lib/dependencies",
    ]

    for dir in searchPaths:
        sys.path.insert(0, os.path.join(agent_version_dir, dir))

    BASE_CONFIG_DIR = os.path.join(agent_home, "config")
    BASE_CUSTOM_PLUGIN_DIR = os.path.join(agent_home, "share")
    BASE_DATA_DIR = os.path.join(agent_home, "data")
    BASE_LOG_DIR = os.path.join(agent_home, "logs")
    BIN_DIR = os.path.join(agent_version_dir, "bin")
    LIB_DIR = os.path.join(agent_version_dir, "lib")

else:
    # Add the main dependency directory
    sys.path.insert(0, "/usr/lib/fm-agent/dependencies")

    # Add platform/version-specific dependency directory if present
    version = sys.version_info
    try:
        is_64bit = sys.maxsize > 2**32
    except:
        is_64bit = True
    os_name = sys.platform
    if not is_64bit:
        os_name += "-32"
    sys.path.insert(
        0,
        "/usr/lib/fm-agent/dependencies/%s/python%s.%s"
        % (os_name, version[0], version[1]),
    )

    # Add the main agent code directory
    sys.path.insert(0, "/usr/lib/fm-agent/library")
    sys.path.insert(0, "/usr/lib/fm-agent/")

    # Add processor/platform/version dependency directory if present, in order to pick up
    # Sparc libraries properly
    processor = platform.uname()[-1]
    sys.path.insert(
        0,
        "/usr/lib/fm-agent/dependencies/%s/%s/python%s.%s"
        % (processor, os_name, version[0], version[1]),
    )

    # Add the main agent code directory
    sys.path.insert(0, "/usr/lib/fm-agent/library")

from agent import Agent

if __name__ == "__main__":
    agent = Agent(
        BRAND,
        AGG_URL,
        VERSION,
        USER,
        BIN_DIR,
        LIB_DIR,
        PKG_DIR,
        STARTUP_TIMEOUT,
        BASE_CONFIG_DIR,
        BASE_CUSTOM_PLUGIN_DIR,
        BASE_DATA_DIR,
        BASE_LOG_DIR,
        ACCEPTABLE_SYNC_DELAY,
    )
    agent.main()

Zerion Mini Shell 1.0