File: //proc/self/root/lib/fm-agent/countermeasures/plugins/reboot.py
"""
FortiMonitor Reboot Countermeasure
Copyright 2023 Fortinet, Inc. All Rights Reserved.
fm-ops@fortinet.com
"""
from CountermeasurePlugin import CountermeasurePlugin
class RebootCountermeasure(CountermeasurePlugin):
name = "Reboot Server"
textkey = "reboot"
description = "Reboot the server"
wall_announce_delay = 30
max_frequency = 1800
max_runtime = None
sudo_requirements = ["shutdown"]
author = "support@panopta.com"
def run(self):
"""
Issue a "shutdown -r" command, with an 15 second sleep to give us time report the result
back to Panopta before the reboot happens.
"""
return_code, output = self.execute("sleep 15; sudo -n shutdown -r", block=False)
self.save_text_output("Server reboot initiated")
self.save_return_code(c.return_code)