diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/Makefile.am | 1 | ||||
-rw-r--r-- | plugins/config_generator.py | 2 | ||||
-rwxr-xr-x | plugins/submit_external_command.py | 55 |
3 files changed, 57 insertions, 1 deletions
diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 39893e3..a6cc905 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -11,6 +11,7 @@ dist_glusternagiosplugins_PYTHON = \ discovery.py \ config_generator.py \ servicesnmptrapgenerator.py \ + submit_external_command.py \ $(NULL) EXTRA_DIST = \ diff --git a/plugins/config_generator.py b/plugins/config_generator.py index 17b5df3..bf18cf1 100644 --- a/plugins/config_generator.py +++ b/plugins/config_generator.py @@ -141,7 +141,7 @@ class GlusterNagiosConfManager: def __createBrickStatusService(self, brick, hostName): brickService = {} - brickService['use'] = 'gluster-passive-service' + brickService['use'] = 'gluster-brick-passive-service' brickService['host_name'] = hostName serviceDesc = "Brick Status - %s:%s" % (hostName, brick['brickpath']) brickService['service_description'] = serviceDesc 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) |