You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2015/04/28 22:02:05 UTC

camel git commit: CAMEL-8714 Camel-Openshift: Add Environment Variables management

Repository: camel
Updated Branches:
  refs/heads/master 37d1f0894 -> fa947f01e


CAMEL-8714 Camel-Openshift: Add Environment Variables management


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fa947f01
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fa947f01
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fa947f01

Branch: refs/heads/master
Commit: fa947f01edc53efff0558fea41f9738747d8e20a
Parents: 37d1f08
Author: Andrea Cosentino <an...@gmail.com>
Authored: Mon Apr 27 23:19:13 2015 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Tue Apr 28 21:59:56 2015 +0200

----------------------------------------------------------------------
 .../component/openshift/OpenShiftConstants.java |   3 +
 .../component/openshift/OpenShiftOperation.java |  10 +-
 .../component/openshift/OpenShiftProducer.java  | 186 +++++++++++++++++++
 .../OpenShiftAddEnvironmentVariableTest.java    |  60 ++++++
 ...OpenShiftGetAllEnvironmentVariablesTest.java |  60 ++++++
 .../OpenShiftGetDeploymentTypeTest.java         |  60 ++++++
 ...penShiftGetEnvironmentVariableValueTest.java |  60 ++++++
 .../openshift/OpenShiftGetGearProfileTest.java  |  60 ++++++
 .../OpenShiftRemoveEnvironmentVariableTest.java |  60 ++++++
 .../OpenShiftSetDeploymentTypeTest.java         |  60 ++++++
 .../OpenShiftUpdateEnvironmentVariableTest.java |  60 ++++++
 11 files changed, 678 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftConstants.java b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftConstants.java
index 7084885..e390fe0 100644
--- a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftConstants.java
+++ b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftConstants.java
@@ -24,6 +24,9 @@ public final class OpenShiftConstants {
     public static final String EVENT_OLD_STATE = "CamelOpenShiftEventOldState";
     public static final String EVENT_NEW_STATE = "CamelOpenShiftEventNewState";
     public static final String EMBEDDED_CARTRIDGE_NAME = "CamelOpenShiftEmbeddedCartridgeName";
+    public static final String DEPLOYMENT_TYPE = "CamelOpenShiftDeploymentType";
+    public static final String ENVIRONMENT_VARIABLE_NAME = "CamelOpenShiftEnvironmentVariableName";
+    public static final String ENVIRONMENT_VARIABLE_VALUE = "CamelOpenShiftEnvironmentVariableValue";
 
     private OpenShiftConstants() {
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftOperation.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftOperation.java b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftOperation.java
index 8ba9a0c..3295565 100644
--- a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftOperation.java
+++ b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftOperation.java
@@ -29,5 +29,13 @@ public enum OpenShiftOperation {
     removeEmbeddedCartridge,
     scaleUp,
     scaleDown,
-    getGitUrl
+    getGitUrl,
+    getDeploymentType,
+    setDeploymentType,
+    getAllEnvironmentVariables,
+    addEnvironmentVariable,
+    updateEnvironmentVariable,
+    getEnvironmentVariableValue,
+    removeEnvironmentVariable,
+    getGearProfile
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftProducer.java b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftProducer.java
index 7f80251..09661f7 100644
--- a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftProducer.java
+++ b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftProducer.java
@@ -20,12 +20,15 @@ import java.text.SimpleDateFormat;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
 
 import com.openshift.client.ApplicationScale;
 import com.openshift.client.IApplication;
 import com.openshift.client.IDomain;
+import com.openshift.client.IEnvironmentVariable;
 import com.openshift.client.IGear;
 import com.openshift.client.IGearGroup;
+import com.openshift.client.IGearProfile;
 import com.openshift.client.OpenShiftException;
 import com.openshift.client.cartridge.IDeployedStandaloneCartridge;
 import com.openshift.client.cartridge.IEmbeddableCartridge;
@@ -95,6 +98,30 @@ public class OpenShiftProducer extends DefaultProducer {
         case scaleDown:
             doScaleDown(exchange, domain);
             break;
+        case getDeploymentType:
+        	doGetDeploymentType(exchange, domain);
+            break;
+        case setDeploymentType:
+        	doSetDeploymentType(exchange, domain);
+            break;
+        case addEnvironmentVariable:
+        	doAddEnvironmentVariable(exchange, domain);
+            break;
+        case updateEnvironmentVariable:
+        	doUpdateEnvironmentVariable(exchange, domain);
+            break;
+        case getAllEnvironmentVariables:
+        	doGetAllEnvironmentVariables(exchange, domain);
+            break;
+        case getEnvironmentVariableValue:
+        	doGetEnvironmentVariableValue(exchange, domain);
+            break;
+        case removeEnvironmentVariable:
+        	doRemoveEnvironmentVariable(exchange, domain);
+            break;
+        case getGearProfile:
+        	doGetGearProfile(exchange, domain);
+            break;            
         case list:
         default:
             // and do list by default
@@ -372,4 +399,163 @@ public class OpenShiftProducer extends DefaultProducer {
             exchange.getIn().setBody(gitUrl);
         }
     }
+    
+    protected void doGetDeploymentType(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+            String deploymentType = app.getDeploymentType();
+            exchange.getIn().setBody(deploymentType);
+        }
+    }
+    
+    protected void doSetDeploymentType(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+            String deploymentType = exchange.getIn().getHeader(OpenShiftConstants.DEPLOYMENT_TYPE, getEndpoint().getApplication(), String.class);
+            if (!ObjectHelper.isEmpty(deploymentType) && deploymentType != null) {
+                String result = app.setDeploymentType(deploymentType);
+                exchange.getIn().setBody(result);
+            } else {
+                throw new CamelExchangeException("Deployment Type not specified", exchange);
+            }
+        }
+    }
+    
+    protected void doAddEnvironmentVariable(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+            String variableName = exchange.getIn().getHeader(OpenShiftConstants.ENVIRONMENT_VARIABLE_NAME, getEndpoint().getApplication(), String.class);
+            String variableValue = exchange.getIn().getHeader(OpenShiftConstants.ENVIRONMENT_VARIABLE_VALUE, getEndpoint().getApplication(), String.class);
+            if ((!app.canUpdateEnvironmentVariables())) {
+            	throw new CamelExchangeException("The application with id " + name + " can't update Environment Variables", exchange);
+            }
+            if ((!ObjectHelper.isEmpty(variableName) && variableName != null) || (!ObjectHelper.isEmpty(variableValue) && variableValue != null)) {
+                IEnvironmentVariable result = app.addEnvironmentVariable(variableName, variableValue);
+                exchange.getIn().setBody(result.getName());
+            } else {
+                throw new CamelExchangeException("Environment variable not correctly specified", exchange);
+            }
+        }
+    }
+    
+    protected void doUpdateEnvironmentVariable(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+            String variableName = exchange.getIn().getHeader(OpenShiftConstants.ENVIRONMENT_VARIABLE_NAME, getEndpoint().getApplication(), String.class);
+            String variableValue = exchange.getIn().getHeader(OpenShiftConstants.ENVIRONMENT_VARIABLE_VALUE, getEndpoint().getApplication(), String.class);
+            if ((!app.canUpdateEnvironmentVariables())) {
+            	throw new CamelExchangeException("The application with id " + name + " can't update Environment Variables", exchange);
+            }
+            if ((!ObjectHelper.isEmpty(variableName) && variableName != null) || (!ObjectHelper.isEmpty(variableValue) && variableValue != null)) {
+                IEnvironmentVariable result = app.updateEnvironmentVariable(variableName, variableValue);
+                exchange.getIn().setBody(result.getName());
+            } else {
+                throw new CamelExchangeException("Environment variable not correctly specified", exchange);
+            }
+        }
+    }
+    
+    protected void doGetEnvironmentVariableValue(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+            String variableName = exchange.getIn().getHeader(OpenShiftConstants.ENVIRONMENT_VARIABLE_NAME, getEndpoint().getApplication(), String.class);
+            if ((!app.canGetEnvironmentVariables())) {
+            	throw new CamelExchangeException("The application with id " + name + " can't get Environment Variables", exchange);
+            }
+            if ((!ObjectHelper.isEmpty(variableName) && variableName != null)) {
+                IEnvironmentVariable result = app.getEnvironmentVariable(variableName);
+                exchange.getIn().setBody(result.getValue());
+            } else {
+                throw new CamelExchangeException("Environment variable name not specified", exchange);
+            }
+        }
+    }
+    
+    protected void doGetAllEnvironmentVariables(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+        	Map<String, IEnvironmentVariable> result = app.getEnvironmentVariables();
+        	exchange.getIn().setBody(result);
+        }
+    }
+    
+    protected void doRemoveEnvironmentVariable(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+            String variableName = exchange.getIn().getHeader(OpenShiftConstants.ENVIRONMENT_VARIABLE_NAME, getEndpoint().getApplication(), String.class);
+            if ((!app.canGetEnvironmentVariables())) {
+            	throw new CamelExchangeException("The application with id " + name + " can't get Environment Variables", exchange);
+            }
+            if ((!ObjectHelper.isEmpty(variableName) && variableName != null)) {
+                app.removeEnvironmentVariable(variableName);
+                exchange.getIn().setBody(variableName);
+            } else {
+                throw new CamelExchangeException("Environment variable name not specified", exchange);
+            }
+        }
+    }
+    
+    protected void doGetGearProfile(Exchange exchange, IDomain domain) throws CamelExchangeException {
+        String name = exchange.getIn().getHeader(OpenShiftConstants.APPLICATION, getEndpoint().getApplication(), String.class);
+        if (name == null) {
+            throw new CamelExchangeException("Application not specified", exchange);
+        }
+
+        IApplication app = domain.getApplicationByName(name);
+        if (app == null) {
+            throw new CamelExchangeException("Application with id " + name + " not found.", exchange);
+        } else {
+            IGearProfile result = app.getGearProfile();
+            exchange.getIn().setBody(result.getName());
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftAddEnvironmentVariableTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftAddEnvironmentVariableTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftAddEnvironmentVariableTest.java
new file mode 100644
index 0000000..607c964
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftAddEnvironmentVariableTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftAddEnvironmentVariableTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testAddEnvironmentVariable() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=addEnvironmentVariable&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetAllEnvironmentVariablesTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetAllEnvironmentVariablesTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetAllEnvironmentVariablesTest.java
new file mode 100644
index 0000000..b65d2ae
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetAllEnvironmentVariablesTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftGetAllEnvironmentVariablesTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testGetGitUrl() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=getAllEnvironmentVariables&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetDeploymentTypeTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetDeploymentTypeTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetDeploymentTypeTest.java
new file mode 100644
index 0000000..4ae93bf
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetDeploymentTypeTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftGetDeploymentTypeTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testGetDeploymentType() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=getDeploymentType&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetEnvironmentVariableValueTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetEnvironmentVariableValueTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetEnvironmentVariableValueTest.java
new file mode 100644
index 0000000..11f8b45
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetEnvironmentVariableValueTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftGetEnvironmentVariableValueTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testGetEnvironmentVariable() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=getEnvironmentVariableValue&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetGearProfileTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetGearProfileTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetGearProfileTest.java
new file mode 100644
index 0000000..872d6f8
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftGetGearProfileTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftGetGearProfileTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testGetGearProfile() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=getGearProfile&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftRemoveEnvironmentVariableTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftRemoveEnvironmentVariableTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftRemoveEnvironmentVariableTest.java
new file mode 100644
index 0000000..e3b5e9d
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftRemoveEnvironmentVariableTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftRemoveEnvironmentVariableTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testRemoveEnvironmentVariable() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=removeEnvironmentVariable&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftSetDeploymentTypeTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftSetDeploymentTypeTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftSetDeploymentTypeTest.java
new file mode 100644
index 0000000..eecb5d3
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftSetDeploymentTypeTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftSetDeploymentTypeTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testSetDeploymentType() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=setDeploymentType&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/fa947f01/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftUpdateEnvironmentVariableTest.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftUpdateEnvironmentVariableTest.java b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftUpdateEnvironmentVariableTest.java
new file mode 100644
index 0000000..29a10f0
--- /dev/null
+++ b/components/camel-openshift/src/test/java/org/apache/camel/component/openshift/OpenShiftUpdateEnvironmentVariableTest.java
@@ -0,0 +1,60 @@
+/**
+ * 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.openshift;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class OpenShiftUpdateEnvironmentVariableTest extends CamelTestSupport {
+
+    private String username;
+    private String password;
+
+    @Override
+    public void setUp() throws Exception {
+        // INSERT credentials here
+        username = null;
+        password = null;
+        super.setUp();
+    }
+
+    @Test
+    public void testUpdateEnvironmentVariable() throws Exception {
+        if (username == null) {
+            return;
+        }
+
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .toF("openshift:myApp?operation=updateEnvironmentVariable&mode=json&username=%s&password=%s", username, password)
+                    .to("mock:result");
+            }
+        };
+    }
+}