Search in sources :

Example 1 with MessagePayload

use of com.googlecode.jsendnsca.MessagePayload 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)

Example 2 with MessagePayload

use of com.googlecode.jsendnsca.MessagePayload in project wildfly-camel by wildfly-extras.

the class NagiosIntegrationTest method testSendToNagiosWarn.

@Test
public void testSendToNagiosWarn() throws Exception {
    CamelContext camelctx = new DefaultCamelContext();
    camelctx.addRoutes(createRouteBuilder());
    MessagePayload expectedPayload1 = new MessagePayload("localhost", Level.WARNING, camelctx.getName(), "Hello Nagios");
    MockEndpoint mock = camelctx.getEndpoint("mock:result", MockEndpoint.class);
    mock.expectedMessageCount(1);
    mock.expectedBodiesReceived("Hello Nagios");
    camelctx.start();
    try {
        ProducerTemplate template = camelctx.createProducerTemplate();
        template.sendBodyAndHeader("direct:start", "Hello Nagios", NagiosConstants.LEVEL, Level.WARNING);
        mock.assertIsSatisfied();
        Mockito.verify(nagiosPassiveCheckSender).send(expectedPayload1);
    } finally {
        camelctx.stop();
    }
}
Also used : DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) CamelContext(org.apache.camel.CamelContext) ProducerTemplate(org.apache.camel.ProducerTemplate) MockEndpoint(org.apache.camel.component.mock.MockEndpoint) DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) MessagePayload(com.googlecode.jsendnsca.MessagePayload) Test(org.junit.Test)

Example 3 with MessagePayload

use of com.googlecode.jsendnsca.MessagePayload in project wildfly-camel by wildfly-extras.

the class NagiosIntegrationTest method testSendToNagiosMultiHeaders.

@Test
public void testSendToNagiosMultiHeaders() throws Exception {
    CamelContext camelctx = new DefaultCamelContext();
    camelctx.addRoutes(createRouteBuilder());
    MessagePayload expectedPayload1 = new MessagePayload("myHost", Level.CRITICAL, "myService", "Hello Nagios");
    MockEndpoint mock = camelctx.getEndpoint("mock:result", MockEndpoint.class);
    mock.expectedMessageCount(1);
    mock.expectedBodiesReceived("Hello Nagios");
    Map<String, Object> headers = new HashMap<String, Object>();
    headers.put(NagiosConstants.LEVEL, "CRITICAL");
    headers.put(NagiosConstants.HOST_NAME, "myHost");
    headers.put(NagiosConstants.SERVICE_NAME, "myService");
    camelctx.start();
    try {
        ProducerTemplate template = camelctx.createProducerTemplate();
        template.sendBodyAndHeaders("direct:start", "Hello Nagios", headers);
        mock.assertIsSatisfied();
        Mockito.verify(nagiosPassiveCheckSender).send(expectedPayload1);
    } finally {
        camelctx.stop();
    }
}
Also used : DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) CamelContext(org.apache.camel.CamelContext) ProducerTemplate(org.apache.camel.ProducerTemplate) MockEndpoint(org.apache.camel.component.mock.MockEndpoint) HashMap(java.util.HashMap) DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) MessagePayload(com.googlecode.jsendnsca.MessagePayload) Test(org.junit.Test)

Example 4 with MessagePayload

use of com.googlecode.jsendnsca.MessagePayload in project wildfly-camel by wildfly-extras.

the class NagiosIntegrationTest method testSendToNagiosWarnAsText.

@Test
public void testSendToNagiosWarnAsText() throws Exception {
    CamelContext camelctx = new DefaultCamelContext();
    camelctx.addRoutes(createRouteBuilder());
    MessagePayload expectedPayload1 = new MessagePayload("localhost", Level.WARNING, camelctx.getName(), "Hello Nagios");
    MockEndpoint mock = camelctx.getEndpoint("mock:result", MockEndpoint.class);
    mock.expectedMessageCount(1);
    mock.expectedBodiesReceived("Hello Nagios");
    camelctx.start();
    try {
        ProducerTemplate template = camelctx.createProducerTemplate();
        template.sendBodyAndHeader("direct:start", "Hello Nagios", NagiosConstants.LEVEL, "WARNING");
        mock.assertIsSatisfied();
        Mockito.verify(nagiosPassiveCheckSender).send(expectedPayload1);
    } finally {
        camelctx.stop();
    }
}
Also used : DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) CamelContext(org.apache.camel.CamelContext) ProducerTemplate(org.apache.camel.ProducerTemplate) MockEndpoint(org.apache.camel.component.mock.MockEndpoint) DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) MessagePayload(com.googlecode.jsendnsca.MessagePayload) Test(org.junit.Test)

Example 5 with MessagePayload

use of com.googlecode.jsendnsca.MessagePayload in project wildfly-camel by wildfly-extras.

the class NagiosIntegrationTest method testSendTwoToNagios.

@Test
public void testSendTwoToNagios() throws Exception {
    CamelContext camelctx = new DefaultCamelContext();
    camelctx.addRoutes(createRouteBuilder());
    MessagePayload expectedPayload1 = new MessagePayload("localhost", Level.OK, camelctx.getName(), "Hello Nagios");
    MessagePayload expectedPayload2 = new MessagePayload("localhost", Level.OK, camelctx.getName(), "Bye Nagios");
    MockEndpoint mock = camelctx.getEndpoint("mock:result", MockEndpoint.class);
    mock.expectedMessageCount(2);
    mock.allMessages().body().isInstanceOf(String.class);
    mock.expectedBodiesReceived("Hello Nagios", "Bye Nagios");
    camelctx.start();
    try {
        ProducerTemplate template = camelctx.createProducerTemplate();
        template.sendBody("direct:start", "Hello Nagios");
        template.sendBody("direct:start", "Bye Nagios");
        mock.assertIsSatisfied();
        Mockito.verify(nagiosPassiveCheckSender).send(expectedPayload1);
        Mockito.verify(nagiosPassiveCheckSender).send(expectedPayload2);
    } finally {
        camelctx.stop();
    }
}
Also used : DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) CamelContext(org.apache.camel.CamelContext) ProducerTemplate(org.apache.camel.ProducerTemplate) MockEndpoint(org.apache.camel.component.mock.MockEndpoint) DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) MessagePayload(com.googlecode.jsendnsca.MessagePayload) Test(org.junit.Test)

Aggregations

MessagePayload (com.googlecode.jsendnsca.MessagePayload)7 CamelContext (org.apache.camel.CamelContext)5 ProducerTemplate (org.apache.camel.ProducerTemplate)5 MockEndpoint (org.apache.camel.component.mock.MockEndpoint)5 DefaultCamelContext (org.apache.camel.impl.DefaultCamelContext)5 Test (org.junit.Test)5 Level (com.googlecode.jsendnsca.Level)2 NagiosException (com.googlecode.jsendnsca.NagiosException)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 IOException (java.io.IOException)1 HashMap (java.util.HashMap)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