ok
Direktori : /bin/fm-agent/ |
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()