All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.jnrpe.plugin.test.CTestPlugin Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright (c) 2007, 2014 Massimiliano Ziccardi
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *******************************************************************************/
package it.jnrpe.plugin.test;

import it.jnrpe.ICommandLine;
import it.jnrpe.ReturnValue;
import it.jnrpe.Status;
import it.jnrpe.plugins.IPluginInterface;
import it.jnrpe.plugins.annotations.Option;
import it.jnrpe.plugins.annotations.Plugin;
import it.jnrpe.plugins.annotations.PluginOptions;
import it.jnrpe.utils.TimeUnit;

/**
 * A simple test plugin that returns the status as specified by the 'status'
 * parameter and as text the value of the 'text' parameter.
 * 
 * @author Massimiliano Ziccardi
 * 
 */
@Plugin(name = "TEST", description = "This is just a test plugin. Invoke it passing the String you want to get back and,\n"
        + "optionally, the status you want.\n" + "Return:\n" + "If you don't specify the status parameters, the return code is 'OK'.\n"
        + "The returned message is always the text you pass as parameter (-t/--text)\n\n"
        + "Example Command Definition (inside the server configuration, in the command section)\n\n"
        + "check_test : TEST --text $ARG1$ --status $ARG2$\n\n" + "or, using the XML:\n\n" + "\n"
        + "   \n" + "   \n" + "\n\n"
        + "Example invocation:\n\n" + "./check_nrpe -n -H myjnrpeserver -c check_test -a 'Hello!critical'")
@PluginOptions({
        @Option(shortName = "t", longName = "text", description = "the message to print", required = true, hasArgs = true, argName = "text", optionalArgs = false, option = "text"),
        @Option(shortName = "s", longName = "status", description = "the status to return (ok, warning, critical, unknown) - defaults to \"OK\"", required = false, hasArgs = true, argName = "statcode", optionalArgs = false, option = "status"),
        @Option(shortName = "d", longName = "delay", description = "The number of seconds to wait before returnin (default is 0)", required = false, hasArgs = true, argName = "seconds", optionalArgs = false, option = "delay") })
public class CTestPlugin implements IPluginInterface {

    /**
     * Executes the plugin. The accepter params are:
     * 
    *
  • --text : the text to be returned *
  • --status : the status to be returned (ok, warning, critical. Any * other status is interpreted as UNKNOWN). The default value is 'ok'. *
* * @param cl * The command line * @return The return value */ public final ReturnValue execute(final ICommandLine cl) { Status returnStatus; String statusParam = cl.getOptionValue("status", "ok"); if ("ok".equalsIgnoreCase(statusParam)) { returnStatus = Status.OK; } else if ("critical".equalsIgnoreCase(statusParam)) { returnStatus = Status.CRITICAL; } else if ("warning".equalsIgnoreCase(statusParam)) { returnStatus = Status.WARNING; } else { returnStatus = Status.UNKNOWN; } if (cl.hasOption("delay") && Integer.parseInt(cl.getOptionValue("delay")) > 0) { try { Thread.sleep(TimeUnit.SECOND.convert(Integer.parseInt(cl.getOptionValue("delay")))); } catch (Exception e) { } } return new ReturnValue(returnStatus, "TEST : " + cl.getOptionValue("text")); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy