diff options
Diffstat (limited to 'plugins/submit_external_command.py')
-rwxr-xr-x | plugins/submit_external_command.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/plugins/submit_external_command.py b/plugins/submit_external_command.py new file mode 100755 index 0000000..876c6b5 --- /dev/null +++ b/plugins/submit_external_command.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# submit_external_command.py Nagios plugin to submit external command +# to nagios +# Copyright (C) 2014 Red Hat Inc +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# +import argparse +import sys + +from glusternagios import utils +from constants import NAGIOS_COMMAND_FILE_PATH + + +def parse_input(): + parser = argparse.ArgumentParser(description="Nagios external " + "command submission tool") + parser.add_argument('-c', '--command', action='store', dest='command', + type=str, required=True, help='External Command') + parser.add_argument('-H', '--hostName', action='store', dest='hostName', + type=str, required=True, help='Host Name') + parser.add_argument('-s', '--service', action='store', dest='service', + type=str, required=False, + help='Service Description') + parser.add_argument('-t', '--time', action='store', dest='dateTime', + type=str, required=True, + help='Service Description') + args = parser.parse_args() + return args + + +def _submitExternalCommand(command, hostname, service, dateTime): + cmdStr = "[%s] %s;%s;%s;%s\n" % (dateTime, command, + hostname, service, dateTime) + with open(NAGIOS_COMMAND_FILE_PATH, "w") as f: + f.write(cmdStr) + + +if __name__ == '__main__': + args = parse_input() + _submitExternalCommand(args.command, args.hostName, + args.service, args.dateTime) + sys.exit(utils.PluginStatusCode.OK) |