You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/08/18 12:04:47 UTC

svn commit: r1159127 - in /camel/trunk/components/camel-nagios/src: main/java/org/apache/camel/component/nagios/ test/java/org/apache/camel/component/nagios/

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
             }
         };