Search in sources :

Example 1 with NagiosSettingsBuilder

use of com.googlecode.jsendnsca.builders.NagiosSettingsBuilder in project pentaho-kettle by pentaho.

the class JobEntrySendNagiosPassiveCheck method execute.

public Result execute(Result previousResult, int nr) {
    log.logBasic(BaseMessages.getString(PKG, "JobEntrySendNagiosPassiveCheck.Started", serverName));
    Result result = previousResult;
    result.setNrErrors(1);
    result.setResult(false);
    // Target
    String realServername = environmentSubstitute(serverName);
    String realPassword = Utils.resolvePassword(variables, password);
    int realPort = Const.toInt(environmentSubstitute(port), DEFAULT_PORT);
    int realResponseTimeOut = Const.toInt(environmentSubstitute(responseTimeOut), DEFAULT_RESPONSE_TIME_OUT);
    int realConnectionTimeOut = Const.toInt(environmentSubstitute(connectionTimeOut), DEFAULT_CONNECTION_TIME_OUT);
    // Sender
    String realSenderServerName = environmentSubstitute(senderServerName);
    String realSenderServiceName = environmentSubstitute(senderServiceName);
    try {
        if (Utils.isEmpty(realServername)) {
            throw new KettleException(BaseMessages.getString(PKG, "JobSendNagiosPassiveCheck.Error.TargetServerMissing"));
        }
        String realMessageString = environmentSubstitute(message);
        if (Utils.isEmpty(realMessageString)) {
            throw new KettleException(BaseMessages.getString(PKG, "JobSendNagiosPassiveCheck.Error.MessageMissing"));
        }
        Level level = Level.UNKNOWN;
        switch(getLevel()) {
            case LEVEL_TYPE_OK:
                level = Level.OK;
                break;
            case LEVEL_TYPE_CRITICAL:
                level = Level.CRITICAL;
                break;
            case LEVEL_TYPE_WARNING:
                level = Level.WARNING;
                break;
            default:
                break;
        }
        Encryption encr = Encryption.NONE;
        switch(getEncryptionMode()) {
            case ENCRYPTION_MODE_TRIPLEDES:
                encr = Encryption.TRIPLE_DES;
                break;
            case ENCRYPTION_MODE_XOR:
                encr = Encryption.XOR;
                break;
            default:
                break;
        }
        // settings
        NagiosSettingsBuilder ns = new NagiosSettingsBuilder();
        ns.withNagiosHost(realServername);
        ns.withPort(realPort);
        ns.withConnectionTimeout(realConnectionTimeOut);
        ns.withResponseTimeout(realResponseTimeOut);
        ns.withEncryption(encr);
        if (!Utils.isEmpty(realPassword)) {
            ns.withPassword(realPassword);
        } else {
            ns.withNoPassword();
        }
        // target nagios host
        NagiosSettings settings = ns.create();
        // sender
        MessagePayloadBuilder pb = new MessagePayloadBuilder();
        if (!Utils.isEmpty(realSenderServerName)) {
            pb.withHostname(realSenderServerName);
        }
        pb.withLevel(level);
        if (!Utils.isEmpty(realSenderServiceName)) {
            pb.withServiceName(realSenderServiceName);
        }
        pb.withMessage(realMessageString);
        MessagePayload payload = pb.create();
        NagiosPassiveCheckSender sender = new NagiosPassiveCheckSender(settings);
        sender.send(payload);
        result.setNrErrors(0);
        result.setResult(true);
    } catch (Exception e) {
        log.logError(BaseMessages.getString(PKG, "JobEntrySendNagiosPassiveCheck.ErrorGetting", e.toString()));
    }
    return result;
}
Also used : KettleException(org.pentaho.di.core.exception.KettleException) NagiosSettingsBuilder(com.googlecode.jsendnsca.builders.NagiosSettingsBuilder) NagiosPassiveCheckSender(com.googlecode.jsendnsca.NagiosPassiveCheckSender) Level(com.googlecode.jsendnsca.Level) Encryption(com.googlecode.jsendnsca.encryption.Encryption) NagiosSettings(com.googlecode.jsendnsca.NagiosSettings) KettleException(org.pentaho.di.core.exception.KettleException) KettleDatabaseException(org.pentaho.di.core.exception.KettleDatabaseException) KettleXMLException(org.pentaho.di.core.exception.KettleXMLException) Result(org.pentaho.di.core.Result) MessagePayloadBuilder(com.googlecode.jsendnsca.builders.MessagePayloadBuilder) MessagePayload(com.googlecode.jsendnsca.MessagePayload)

Aggregations

Level (com.googlecode.jsendnsca.Level)1 MessagePayload (com.googlecode.jsendnsca.MessagePayload)1 NagiosPassiveCheckSender (com.googlecode.jsendnsca.NagiosPassiveCheckSender)1 NagiosSettings (com.googlecode.jsendnsca.NagiosSettings)1 MessagePayloadBuilder (com.googlecode.jsendnsca.builders.MessagePayloadBuilder)1 NagiosSettingsBuilder (com.googlecode.jsendnsca.builders.NagiosSettingsBuilder)1 Encryption (com.googlecode.jsendnsca.encryption.Encryption)1 Result (org.pentaho.di.core.Result)1 KettleDatabaseException (org.pentaho.di.core.exception.KettleDatabaseException)1 KettleException (org.pentaho.di.core.exception.KettleException)1 KettleXMLException (org.pentaho.di.core.exception.KettleXMLException)1