diff options
author | Sahina Bose <sabose@redhat.com> | 2014-06-09 15:11:49 +0530 |
---|---|---|
committer | Sahina Bose <sabose@redhat.com> | 2015-05-31 23:54:53 -0700 |
commit | 3ce8475c3e3ace39696d83e45c249f22554d4602 (patch) | |
tree | e18a76d2a1a6116df43cbabd5fffac0eada1f2e6 /plugins | |
parent | f6f9efa7dd287803a197a38fdde961519883df62 (diff) |
plugins: nrpe plugin to check volumes with server quorum
Added a plugin to check if any volume in the cluster has
the server side quorum turned on
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1106421
Change-Id: I897aedd737a622832548e7470e8f3cf9fb7dbc2c
Signed-off-by: Sahina Bose <sabose@redhat.com>
Reviewed-on: http://review.gluster.org/8016
Reviewed-by: darshan n <dnarayan@redhat.com>
Reviewed-by: Ramesh N <rnachimu@redhat.com>
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/Makefile.am | 1 | ||||
-rwxr-xr-x | plugins/check_quorum_status.py | 54 |
2 files changed, 55 insertions, 0 deletions
diff --git a/plugins/Makefile.am b/plugins/Makefile.am index ffc121f..b5e522e 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -11,6 +11,7 @@ crond_DATA = \ dist_glusternagiosplugins_PYTHON = \ check_gluster_syslog.py \ check_mounts.py \ + check_quorum_status.py \ check_vol_utilization.py \ check_volume_status.py \ check_proc_status.py \ diff --git a/plugins/check_quorum_status.py b/plugins/check_quorum_status.py new file mode 100755 index 0000000..b3994c9 --- /dev/null +++ b/plugins/check_quorum_status.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# 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 +# +from glusternagios import utils +from glusternagios import glustercli + + +def getClusterQuorumStatus(): + exitstatus = 0 + message = "" + try: + volumes = glustercli.volumeInfo() + except glustercli.GlusterLockedException as e: + out = ("UNKNOWN: temporary error. %s" % '.'.join(e.err)) + return utils.PluginStatusCode.UNKNOWN, out + except glustercli.GlusterCmdFailedException as e: + out = ("Quorum status could not be determined. %s" + % '.'.join(e.err)) + return utils.PluginStatusCode.WARNING, out + + quorumVolumes = [] + for volumename, volume in volumes.iteritems(): + if (volume.get('options') and + volume.get('options').get('cluster.server-quorum-type') + == "server"): + quorumVolumes.append(volumename) + if not quorumVolumes: + exitstatus = utils.PluginStatusCode.UNKNOWN + message = "Server quorum not turned on for any volume" + else: + exitstatus = utils.PluginStatusCode.OK + message = ("Server quorum turned on for %s" + % (','.join(quorumVolumes))) + return exitstatus, message + + +if __name__ == '__main__': + exitstatus, message = getClusterQuorumStatus() + print message + exit(exitstatus) |