X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fcheck_cluster.c;h=89b1a0e1ca338305cdcaac5ec4d44ce6ca226bf6;hb=933918ce5dd0c0f162e5d4acc0f1cfdc9c7a1631;hp=5d52d42daeef275ad28c3f2599c9306de20e6c10;hpb=1ef19943e19fe30a5fbd7607e53c75c98db9974c;p=nagiosplug.git diff --git a/plugins/check_cluster.c b/plugins/check_cluster.c index 5d52d42..89b1a0e 100644 --- a/plugins/check_cluster.c +++ b/plugins/check_cluster.c @@ -1,35 +1,29 @@ /***************************************************************************** - * - * CHECK_CLUSTER2.C - Host and Service Cluster Plugin for Nagios 2.x - * - * Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org) - * Copyright (c) 2007 nagios-plugins team - * License: GPL - * Last Modified: $Date$ - * - * License Information: - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id$ - * -******************************************************************************/ +* +* check_cluster.c - Host and Service Cluster Plugin for Nagios 2.x +* +* License: GPL +* Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org) +* Copyright (c) 2007 Nagios Plugins Development Team +* +* 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 3 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, see . +* +* +*****************************************************************************/ const char *progname = "check_cluster"; -const char *revision = "$Revision$"; -const char *copyright = "2007"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -71,6 +65,13 @@ int main(int argc, char **argv){ int return_code=STATE_OK; thresholds *thresholds = NULL; + setlocale (LC_ALL, ""); + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + + /* Parse extra opts if any */ + argv=np_extra_opts(&argc, argv, progname); + if(process_arguments(argc,argv)==ERROR) usage(_("Could not parse arguments")); @@ -118,7 +119,7 @@ int main(int argc, char **argv){ } } } - + /* return the status of the cluster */ if(check_type==CHECK_SERVICES){ @@ -143,7 +144,7 @@ int main(int argc, char **argv){ int process_arguments(int argc, char **argv){ int c; int option=0; - static struct option longopts[]={ + static struct option longopts[]={ {"data", required_argument,0,'d'}, {"warning", required_argument,0,'w'}, {"critical", required_argument,0,'c'}, @@ -151,6 +152,7 @@ int process_arguments(int argc, char **argv){ {"host", no_argument, 0,'h'}, {"service", no_argument, 0,'s'}, {"verbose", no_argument, 0,'v'}, + {"version", no_argument, 0,'V'}, {"help", no_argument, 0,'H'}, {0,0,0,0} }; @@ -161,7 +163,7 @@ int process_arguments(int argc, char **argv){ while(1){ - c=getopt_long(argc,argv,"hHsvw:c:d:l:",longopts,&option); + c=getopt_long(argc,argv,"hHsvVw:c:d:l:",longopts,&option); if(c==-1 || c==EOF || c==1) break; @@ -177,14 +179,10 @@ int process_arguments(int argc, char **argv){ break; case 'w': /* warning threshold */ - if (strspn (optarg, "0123456789:,") < strlen (optarg)) - usage2 (_("Invalid warning threshold: %s\n"), optarg); warn_threshold = strdup(optarg); break; case 'c': /* warning threshold */ - if (strspn (optarg, "0123456789:,") < strlen (optarg)) - usage2 (_("Invalid critical threshold: %s\n"), optarg); crit_threshold = strdup(optarg); break; @@ -200,6 +198,11 @@ int process_arguments(int argc, char **argv){ verbose++; break; + case 'V': /* version */ + print_revision (progname, NP_VERSION); + exit (STATE_OK); + break; + case 'H': /* help */ print_help(); exit(STATE_UNKNOWN); @@ -220,7 +223,7 @@ int process_arguments(int argc, char **argv){ void print_help(void) { - print_revision(progname, revision); + print_revision(progname, NP_VERSION); printf ("Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org)\n"); printf(COPYRIGHT, copyright, email); @@ -231,6 +234,7 @@ print_help(void) printf("\n"); printf("%s\n", _("Options:")); + printf(_(UT_EXTRA_OPTS)); printf (" %s\n", "-s, --service"); printf (" %s\n", _("Check service cluster status")); printf (" %s\n", "-h, --host"); @@ -242,7 +246,7 @@ print_help(void) printf (" %s\n", _("non-OK state in order to return a WARNING status level")); printf (" %s\n", "-c, --critical=THRESHOLD"); printf (" %s\n", _("Specifies the range of hosts or services in cluster that must be in a")); - printf (" %s\n", _(" non-OK state in order to return a CRITICAL status level")); + printf (" %s\n", _("non-OK state in order to return a CRITICAL status level")); printf (" %s\n", "-d, --data=LIST"); printf (" %s\n", _("The status codes of the hosts or services in the cluster, separated by")); printf (" %s\n", _("commas")); @@ -251,12 +255,18 @@ print_help(void) printf("\n"); printf("%s\n", _("Notes:")); - printf(" %s\n", _("See:")); - printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT")); - printf(" %s\n", _("for THRESHOLD format and examples.")); + printf(_(UT_THRESHOLDS_NOTES)); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + + printf ("\n"); + printf ("%s\n", _("Examples:")); + printf (" %s\n", "check_cluster -s -d 2,0,2,0 -c @3:"); + printf (" %s\n", _("Will alert critical if there are 3 or more service data points in a non-OK state") ); printf(_(UT_SUPPORT)); - printf("\n"); }