Author: davsclaus Date: Thu Aug 18 10:04:47 2011 New Revision: 1159127 URL: http://svn.apache.org/viewvc?rev=1159127&view=rev Log: CAMEL-4349: Added encryptionMode option to camel-nagios.
Added: camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEncryptionMethod.java camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosXorEncryptionTest.java - copied, changed from r1159050, camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosTest.java Modified: camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java Modified: camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java?rev=1159127&r1=1159126&r2=1159127&view=diff ============================================================================== --- camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java (original) +++ camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java Thu Aug 18 10:04:47 2011 @@ -18,6 +18,7 @@ package org.apache.camel.component.nagio import java.net.URI; +import com.googlecode.jsendnsca.core.Encryption; import com.googlecode.jsendnsca.core.NagiosSettings; import org.apache.camel.RuntimeCamelException; import org.apache.camel.util.ObjectHelper; @@ -33,7 +34,7 @@ public class NagiosConfiguration impleme private int connectionTimeout = 5000; private int timeout = 5000; private String password; - + private NagiosEncryptionMethod encryptionMethod; /** * Returns a copy of this configuration @@ -74,6 +75,18 @@ public class NagiosConfiguration impleme nagiosSettings.setNagiosHost(getHost()); nagiosSettings.setPort(getPort()); nagiosSettings.setPassword(getPassword()); + + if (encryptionMethod != null) { + if (NagiosEncryptionMethod.No == encryptionMethod) { + nagiosSettings.setEncryptionMethod(Encryption.NO_ENCRYPTION); + } else if (NagiosEncryptionMethod.Xor == encryptionMethod) { + nagiosSettings.setEncryptionMethod(Encryption.XOR_ENCRYPTION); + } else if (NagiosEncryptionMethod.TripeDes == encryptionMethod) { + nagiosSettings.setEncryptionMethod(Encryption.TRIPLE_DES_ENCRYPTION); + } else { + throw new IllegalArgumentException("Unknown encryption method: " + encryptionMethod); + } + } } return nagiosSettings; @@ -123,9 +136,18 @@ public class NagiosConfiguration impleme this.password = password; } + public NagiosEncryptionMethod getEncryptionMethod() { + return encryptionMethod; + } + + public void setEncryptionMethod(NagiosEncryptionMethod encryptionMethod) { + this.encryptionMethod = encryptionMethod; + } + @Override public String toString() { - return "NagiosConfiguration[host=" + host + ":" + port + ", connectionTimeout=" + connectionTimeout + ", timeout=" + timeout; + return "NagiosConfiguration[host=" + host + ":" + port + ", connectionTimeout=" + connectionTimeout + + ", timeout=" + timeout + ", encryptionMethod=" + encryptionMethod + "]"; } } Added: camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEncryptionMethod.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEncryptionMethod.java?rev=1159127&view=auto ============================================================================== --- camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEncryptionMethod.java (added) +++ camel/trunk/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEncryptionMethod.java Thu Aug 18 10:04:47 2011 @@ -0,0 +1,26 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.apache.camel.component.nagios; + +/** + * Encryption methods supported by nagios. + */ +public enum NagiosEncryptionMethod { + + No, Xor, TripeDes; + +} Copied: camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosXorEncryptionTest.java (from r1159050, camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosXorEncryptionTest.java?p2=camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosXorEncryptionTest.java&p1=camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosTest.java&r1=1159050&r2=1159127&rev=1159127&view=diff ============================================================================== --- camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosTest.java (original) +++ camel/trunk/components/camel-nagios/src/test/java/org/apache/camel/component/nagios/NagiosXorEncryptionTest.java Thu Aug 18 10:04:47 2011 @@ -16,9 +16,6 @@ */ package org.apache.camel.component.nagios; -import java.util.HashMap; -import java.util.Map; - import com.googlecode.jsendnsca.core.Level; import com.googlecode.jsendnsca.core.MessagePayload; import com.googlecode.jsendnsca.core.mocks.NagiosNscaStub; @@ -32,7 +29,7 @@ import org.junit.Test; /** * @version */ -public class NagiosTest extends CamelTestSupport { +public class NagiosXorEncryptionTest extends CamelTestSupport { protected boolean canRun; private NagiosNscaStub nagios; @@ -41,7 +38,7 @@ public class NagiosTest extends CamelTes public void setUp() throws Exception { canRun = true; - nagios = new NagiosNscaStub(25667, "secret"); + nagios = new NagiosNscaStub(25664, "secret"); try { nagios.start(); } catch (Exception e) { @@ -90,125 +87,13 @@ public class NagiosTest extends CamelTes assertEquals(context.getName(), payload.getServiceName()); } - @Test - public void testSendTwoToNagios() throws Exception { - if (!canRun) { - return; - } - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMessageCount(2); - mock.allMessages().body().isInstanceOf(String.class); - - template.sendBody("direct:start", "Hello Nagios"); - template.sendBody("direct:start", "Bye Nagios"); - - assertMockEndpointsSatisfied(); - - // sleep a little to let nagios stub process the payloads - Thread.sleep(3000); - - assertEquals(2, nagios.getMessagePayloadList().size()); - - MessagePayload payload = nagios.getMessagePayloadList().get(0); - assertEquals("Hello Nagios", payload.getMessage()); - assertEquals("localhost", payload.getHostname()); - assertEquals(Level.OK.ordinal(), payload.getLevel()); - assertEquals(context.getName(), payload.getServiceName()); - - payload = nagios.getMessagePayloadList().get(1); - assertEquals("Bye Nagios", payload.getMessage()); - assertEquals("localhost", payload.getHostname()); - assertEquals(Level.OK.ordinal(), payload.getLevel()); - assertEquals(context.getName(), payload.getServiceName()); - } - - @Test - public void testSendToNagiosWarn() throws Exception { - if (!canRun) { - return; - } - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMessageCount(1); - - template.sendBodyAndHeader("direct:start", "Hello Nagios", NagiosConstants.LEVEL, Level.WARNING); - - assertMockEndpointsSatisfied(); - - // sleep a little to let nagios stub process the payloads - Thread.sleep(2000); - - assertEquals(1, nagios.getMessagePayloadList().size()); - - MessagePayload payload = nagios.getMessagePayloadList().get(0); - assertEquals("Hello Nagios", payload.getMessage()); - assertEquals("localhost", payload.getHostname()); - assertEquals(Level.WARNING.ordinal(), payload.getLevel()); - assertEquals(context.getName(), payload.getServiceName()); - } - - @Test - public void testSendToNagiosWarnAsText() throws Exception { - if (!canRun) { - return; - } - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMessageCount(1); - - template.sendBodyAndHeader("direct:start", "Hello Nagios", NagiosConstants.LEVEL, "WARNING"); - - assertMockEndpointsSatisfied(); - - // sleep a little to let nagios stub process the payloads - Thread.sleep(2000); - - assertEquals(1, nagios.getMessagePayloadList().size()); - - MessagePayload payload = nagios.getMessagePayloadList().get(0); - assertEquals("Hello Nagios", payload.getMessage()); - assertEquals("localhost", payload.getHostname()); - assertEquals(Level.WARNING.ordinal(), payload.getLevel()); - assertEquals(context.getName(), payload.getServiceName()); - } - - @Test - public void testSendToNagiosMultiHeaders() throws Exception { - if (!canRun) { - return; - } - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMessageCount(1); - - 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"); - template.sendBodyAndHeaders("direct:start", "Hello Nagios", headers); - - assertMockEndpointsSatisfied(); - - // sleep a little to let nagios stub process the payloads - Thread.sleep(2000); - - assertEquals(1, nagios.getMessagePayloadList().size()); - - MessagePayload payload = nagios.getMessagePayloadList().get(0); - assertEquals("Hello Nagios", payload.getMessage()); - assertEquals("myHost", payload.getHostname()); - assertEquals(Level.CRITICAL.ordinal(), payload.getLevel()); - assertEquals("myService", payload.getServiceName()); - } - @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { // START SNIPPET: e1 - from("direct:start").to("nagios:127.0.0.1:25667?password=secret").to("mock:result"); + from("direct:start").to("nagios:127.0.0.1:25664?password=secret&encryptionMethod=Xor").to("mock:result"); // END SNIPPET: e1 } };