55ok

Mini

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

#!/usr/bin/env python
import sys
from optparse import OptionParser

AGG_URL = "rx.us01.fortimonitor.com"
VERSION = "2026.2.4"
BASE_CONFIG_DIR = "/etc"
PKG_DIR = "fm-agent"
BRAND = "fm"

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

from maintenance import Maintenance


if __name__ == "__main__":
    parser = OptionParser()
    parser.add_option(
        "-s",
        "--start",
        dest="start",
        action="store_true",
        help="Flag to determine if we are going to start a maintenance",
        default=False,
    )
    parser.add_option(
        "-e",
        "--end",
        dest="end",
        action="store_true",
        help="Flag to determine if we are going to end a maintenance",
        default=False,
    )
    parser.add_option(
        "-d",
        "--duration",
        dest="duration",
        help="The duration of the maintenance in minutes",
    )
    parser.add_option(
        "-t",
        "--metric-tags",
        dest="metric_tags",
        help="Optional comma separated list of tags to pass to the maintenance.",
    )
    options, args = parser.parse_args()

    start = options.start
    end = options.end
    duration = options.duration
    if not start and not end:
        print("Please specify an action for the maintenance, --start/--end")
        sys.exit(1)
    if start and end:
        print("Please specific only one of our 2 actions, --start/--end")
        sys.exit(1)
    if not duration and not end:
        print("Please specify a duration for the maintenance.")
        sys.exit(1)
    metric_tags = options.metric_tags
    maintenance = Maintenance(BRAND, AGG_URL, VERSION, BASE_CONFIG_DIR, PKG_DIR)
    if end:
        maintenance.end()
    elif start:
        maintenance.start(duration, metric_tags)

Zerion Mini 1.0