ok

Mini Shell

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

#!/usr/bin/env python
"""
Countermeasures production driver - executes one or more countermeasures

Copyright 2023 Fortinet, Inc. All Rights Reserved.
fm-ops@fortinet.com
"""

import os
import sys

platform = sys.platform.lower()
if "freebsd" in platform:
    sys.path.insert(0, "/usr/local/fm-agent/lib/dependencies")
    sys.path.insert(0, "/usr/local/fm-agent/lib/library")
    sys.path.insert(0, "/usr/local/fm-agent/lib")
elif "darwin" == platform:
    filePath = os.path.realpath(__file__)
    agent_bin = os.path.split(filePath)[0]
    agent_version_dir = os.path.split(agent_bin)[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)

    sys_paths = ["lib/dependencies", "lib/library", "lib"]
    if architecture:
        sys_paths.append(
            "lib/dependencies/python{}.{}/{}".format(
                sys.version_info.major, sys.version_info.minor, architecture
            )
        )
    for sp in sys_paths:
        sys.path.insert(0, os.path.join(agent_version_dir, sp))
else:
    sys.path.insert(0, "/usr/lib/fm-agent")
    sys.path.insert(0, "/usr/lib/fm-agent/dependencies")

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

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

import countermeasures.cm_driver as cm_driver

cm_driver.BRAND = "fm"
cm_driver.USER = "fm-agent"
cm_driver.PKG_DIR = "fm-agent"

if "freebsd" in platform:
    cm_driver.BASE_CUSTOM_PLUGIN_DIR = "/usr/local/share/fm-agent/countermeasures"
    cm_driver.BASE_CONFIG_DIR = "/usr/local/etc"
    cm_driver.BIN_DIR = "/usr/local/fm-agent/bin"
    cm_driver.LIB_DIR = "/usr/local/fm-agent/lib"
elif "darwin" == platform:
    base_dir = "/usr/local/FortiMonitor/agent"
    cm_driver.BIN_DIR = os.path.join(base_dir, "latest/bin")
    cm_driver.BASE_CONFIG_DIR = os.path.join(base_dir, "config")
    cm_driver.BASE_CUSTOM_PLUGIN_DIR = os.path.join(
        base_dir, "share", cm_driver.PKG_DIR, "countermeasures"
    )
    cm_driver.BASE_DATA_DIR = os.path.join(base_dir, "data")
    cm_driver.BASE_LOG_DIR = os.path.join(base_dir, "logs")
    cm_driver.LIB_DIR = os.path.join(base_dir, "latest/lib")
else:
    cm_driver.BIN_DIR = "/usr/bin/fm-agent"
    cm_driver.BASE_CONFIG_DIR = "/etc"
    cm_driver.BASE_CUSTOM_PLUGIN_DIR = "/usr/share/fm-agent/countermeasures"
    cm_driver.BASE_DATA_DIR = "/var/lib"
    cm_driver.BASE_LOG_DIR = "/var/log"
    cm_driver.LIB_DIR = "/usr/lib/fm-agent"


cm_driver.main()

Zerion Mini Shell 1.0