index 9ded4a80f7c9e549a12870cc2f236746cfba4c46..d4e39e0f37db71a84d392743de179c4e697eef90 100644 (file)
--- a/plugins/check_cluster.c
+++ b/plugins/check_cluster.c
/*****************************************************************************
- *
- * 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 <http://www.gnu.org/licenses/>.
+*
+*
+*****************************************************************************/
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"
#include "utils.h"
+#include "utils_base.h"
#define CHECK_SERVICES 1
#define CHECK_HOSTS 2
+void print_help (void);
+void print_usage (void);
+
int total_services_ok=0;
int total_services_warning=0;
int total_services_unknown=0;
int main(int argc, char **argv){
- char input_buffer[MAX_INPUT_BUFFER];
char *ptr;
int data_val;
int return_code=STATE_OK;
- int error=FALSE;
- thresholds *thresholds;
+ 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"));
}
}
}
-
+
/* return the status of the cluster */
if(check_type==CHECK_SERVICES){
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'},
{"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}
};
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;
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;
verbose++;
break;
+ case 'V': /* version */
+ print_revision (progname, NP_VERSION);
+ exit (STATE_OK);
+ break;
+
case 'H': /* help */
print_help();
exit(STATE_UNKNOWN);
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);
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");
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"));
- printf(_(UT_VERBOSE));
+ printf(UT_VERBOSE);
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);
- printf(_(UT_SUPPORT));
- printf("\n");
+ 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") );
+ printf (" %s\n", _("state.") );
+
+ printf(UT_SUPPORT);
}
print_usage(void)
{
- printf(_("Usage:"));
+ printf("%s\n", _("Usage:"));
printf(" %s (-s | -h) -d val1[,val2,...,valn] [-l label]\n", progname);
printf("[-w threshold] [-c threshold] [-v] [--help]\n");