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 2016/07/08 08:53:04 UTC

[1/3] camel git commit: CAMEL-10132: Camel-Kubernetes: Add the ability to scale up and down a replication controller from Producer

Repository: camel
Updated Branches:
  refs/heads/master 946c8dffb -> 6c2c8c285


CAMEL-10132: Camel-Kubernetes: Add the ability to scale up and down a replication controller from Producer


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

Branch: refs/heads/master
Commit: 0c3d31190966acc5c1443262be0d0d0874c89240
Parents: 946c8df
Author: Andrea Cosentino <an...@gmail.com>
Authored: Fri Jul 8 10:42:24 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Fri Jul 8 10:52:28 2016 +0200

----------------------------------------------------------------------
 .../kubernetes/KubernetesConstants.java         |  1 +
 .../producer/KubernetesOperations.java          |  1 +
 ...ubernetesReplicationControllersProducer.java | 36 +++++++
 ...netesReplicationControllersProducerTest.java | 99 +++++++++++++++++++-
 4 files changed, 136 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0c3d3119/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
index 3d78497..a56b42f 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
@@ -27,6 +27,7 @@ public interface KubernetesConstants {
     String KUBERNETES_REPLICATION_CONTROLLERS_LABELS = "CamelKubernetesReplicationControllersLabels";
     String KUBERNETES_REPLICATION_CONTROLLER_NAME = "CamelKubernetesReplicationControllerName";
     String KUBERNETES_REPLICATION_CONTROLLER_SPEC = "CamelKubernetesReplicationControllerSpec";
+    String KUBERNETES_REPLICATION_CONTROLLER_REPLICAS = "CamelKubernetesReplicationControllerReplicas";
     String KUBERNETES_PODS_LABELS = "CamelKubernetesPodsLabels";
     String KUBERNETES_POD_NAME = "CamelKubernetesPodName";
     String KUBERNETES_POD_SPEC = "CamelKubernetesPodSpec";

http://git-wip-us.apache.org/repos/asf/camel/blob/0c3d3119/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesOperations.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesOperations.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesOperations.java
index e6dec94..f9437b7 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesOperations.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesOperations.java
@@ -38,6 +38,7 @@ public interface KubernetesOperations {
     String GET_REPLICATION_CONTROLLER_OPERATION = "getReplicationController";
     String CREATE_REPLICATION_CONTROLLER_OPERATION = "createReplicationController";
     String DELETE_REPLICATION_CONTROLLER_OPERATION = "deleteReplicationController";
+    String SCALE_REPLICATION_CONTROLLER_OPERATION = "scaleReplicationController";
     
     // Pods
     String LIST_PODS_OPERATION = "listPods";

http://git-wip-us.apache.org/repos/asf/camel/blob/0c3d3119/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
index 153b0d2..d059f86 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
@@ -83,6 +83,10 @@ public class KubernetesReplicationControllersProducer extends DefaultProducer {
         case KubernetesOperations.DELETE_REPLICATION_CONTROLLER_OPERATION:
             doDeleteReplicationController(exchange, operation);
             break;
+            
+        case KubernetesOperations.SCALE_REPLICATION_CONTROLLER_OPERATION:
+        	doScaleReplicationController(exchange, operation);
+            break;
 
         default:
             throw new IllegalArgumentException("Unsupported operation "
@@ -135,6 +139,7 @@ public class KubernetesReplicationControllersProducer extends DefaultProducer {
             rcList = replicationControllers.list();
         }
         exchange.getOut().setBody(rcList.getItems());
+        
     }
 
     protected void doGetReplicationController(Exchange exchange,
@@ -219,4 +224,35 @@ public class KubernetesReplicationControllersProducer extends DefaultProducer {
                 .withName(rcName).delete();
         exchange.getOut().setBody(rcDeleted);
     }
+    
+    protected void doScaleReplicationController(Exchange exchange,
+            String operation) throws Exception {
+        String rcName = exchange.getIn().getHeader(
+                KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_NAME,
+                String.class);
+        String namespaceName = exchange.getIn().getHeader(
+                KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        Integer replicasNumber = exchange.getIn().getHeader(
+                KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_REPLICAS, Integer.class);
+        if (ObjectHelper.isEmpty(rcName)) {
+            LOG.error("Scale a specific replication controller require specify a replication controller name");
+            throw new IllegalArgumentException(
+                    "Scale a specific replication controller require specify a replication controller name");
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("Scale a specific replication controller require specify a namespace name");
+            throw new IllegalArgumentException(
+                    "Scale a specific replication controller require specify a namespace name");
+        }
+        if (ObjectHelper.isEmpty(replicasNumber)) {
+            LOG.error("Scale a specific replication controller require specify a replicas number");
+            throw new IllegalArgumentException(
+                    "Scale a specific replication controller require specify a replicas number");
+        }
+        ReplicationController rcScaled = getEndpoint().getKubernetesClient()
+                .replicationControllers().inNamespace(namespaceName)
+                .withName(rcName).scale(replicasNumber, true);
+        
+        exchange.getOut().setBody(rcScaled.getStatus().getReplicas());
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/0c3d3119/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
index 08ca143..47e218e 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
@@ -120,7 +120,7 @@ public class KubernetesReplicationControllersProducerTest extends
     }
 
     @Test
-    public void createAndDeleteService() throws Exception {
+    public void createAndDeleteReplicationController() throws Exception {
         if (ObjectHelper.isEmpty(authToken)) {
             return;
         }
@@ -187,6 +187,100 @@ public class KubernetesReplicationControllersProducerTest extends
 
         assertTrue(rcDeleted);
     }
+    
+    @Test
+    public void createScaleAndDeleteReplicationController() throws Exception {
+        if (ObjectHelper.isEmpty(authToken)) {
+            return;
+        }
+        Exchange ex = template.request("direct:createReplicationController",
+                new Processor() {
+
+                    @Override
+                    public void process(Exchange exchange) throws Exception {
+                        exchange.getIn().setHeader(
+                                KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
+                                "default");
+                        exchange.getIn()
+                                .setHeader(
+                                        KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_NAME,
+                                        "test");
+                        Map<String, String> labels = new HashMap<String, String>();
+                        labels.put("this", "rocks");
+                        exchange.getIn()
+                                .setHeader(
+                                        KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLERS_LABELS,
+                                        labels);
+                        ReplicationControllerSpec rcSpec = new ReplicationControllerSpec();
+                        rcSpec.setReplicas(1);
+                        PodTemplateSpecBuilder builder = new PodTemplateSpecBuilder();
+                        PodTemplateSpec t = builder.withNewMetadata()
+                                .withName("nginx-template")
+                                .addToLabels("server", "nginx").endMetadata()
+                                .withNewSpec().addNewContainer()
+                                .withName("wildfly").withImage("jboss/wildfly")
+                                .addNewPort().withContainerPort(80).endPort()
+                                .endContainer().endSpec().build();
+                        rcSpec.setTemplate(t);
+                        Map<String, String> selectorMap = new HashMap<String, String>();
+                        selectorMap.put("server", "nginx");
+                        rcSpec.setSelector(selectorMap);
+                        exchange.getIn()
+                                .setHeader(
+                                        KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_SPEC,
+                                        rcSpec);
+                    }
+                });
+
+        ReplicationController rc = ex.getOut().getBody(
+                ReplicationController.class);
+
+        assertEquals(rc.getMetadata().getName(), "test");
+        
+        ex = template.request("direct:scaleReplicationController",
+                new Processor() {
+
+                    @Override
+                    public void process(Exchange exchange) throws Exception {
+                        exchange.getIn().setHeader(
+                                KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
+                                "default");
+                        exchange.getIn()
+                                .setHeader(
+                                        KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_NAME,
+                                        "test");
+                        exchange.getIn()
+                                .setHeader(
+                                        KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_REPLICAS,
+                                        2);
+                    }
+                });
+        
+        Thread.sleep(10000);
+
+        Integer replicas = ex.getOut().getBody(Integer.class);
+        
+        assertTrue(replicas == 2);
+
+        ex = template.request("direct:deleteReplicationController",
+                new Processor() {
+
+                    @Override
+                    public void process(Exchange exchange) throws Exception {
+                        exchange.getIn().setHeader(
+                                KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
+                                "default");
+                        exchange.getIn()
+                                .setHeader(
+                                        KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_NAME,
+                                        "test");
+                    }
+                });
+
+        boolean rcDeleted = ex.getOut().getBody(Boolean.class);
+
+        assertTrue(rcDeleted);
+    }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
@@ -205,6 +299,9 @@ public class KubernetesReplicationControllersProducerTest extends
                 from("direct:createReplicationController")
                         .toF("kubernetes://%s?oauthToken=%s&category=replicationControllers&operation=createReplicationController",
                                 host, authToken);
+                from("direct:scaleReplicationController")
+                        .toF("kubernetes://%s?oauthToken=%s&category=replicationControllers&operation=scaleReplicationController",
+                                host, authToken);
                 from("direct:deleteReplicationController")
                         .toF("kubernetes://%s?oauthToken=%s&category=replicationControllers&operation=deleteReplicationController",
                                 host, authToken);


[2/3] camel git commit: Fixed CS

Posted by ac...@apache.org.
Fixed CS


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

Branch: refs/heads/master
Commit: 45f4d8a20745387a58c0f376cfad6c134f632d87
Parents: 0c3d311
Author: Andrea Cosentino <an...@gmail.com>
Authored: Fri Jul 8 10:43:25 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Fri Jul 8 10:52:29 2016 +0200

----------------------------------------------------------------------
 .../producer/KubernetesReplicationControllersProducer.java         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/45f4d8a2/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
index d059f86..dd48b79 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducer.java
@@ -85,7 +85,7 @@ public class KubernetesReplicationControllersProducer extends DefaultProducer {
             break;
             
         case KubernetesOperations.SCALE_REPLICATION_CONTROLLER_OPERATION:
-        	doScaleReplicationController(exchange, operation);
+            doScaleReplicationController(exchange, operation);
             break;
 
         default:


[3/3] camel git commit: CAMEL-10132: Camel-Kubernetes: Add the ability to scale up and down a replication controller from Producer - Upgrade docs

Posted by ac...@apache.org.
CAMEL-10132: Camel-Kubernetes: Add the ability to scale up and down a replication controller from Producer - Upgrade docs


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

Branch: refs/heads/master
Commit: 6c2c8c28543cb91d1a760d810bd014e8ffe2d70e
Parents: 45f4d8a
Author: Andrea Cosentino <an...@gmail.com>
Authored: Fri Jul 8 10:50:19 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Fri Jul 8 10:52:29 2016 +0200

----------------------------------------------------------------------
 components/camel-kubernetes/src/main/docs/kubernetes.adoc        | 2 ++
 .../camel/component/kubernetes/KubernetesConfiguration.java      | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6c2c8c28/components/camel-kubernetes/src/main/docs/kubernetes.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes.adoc b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
index f0547ae..511c4c5 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
@@ -112,6 +112,8 @@ Headers
 
 |CamelKubernetesReplicationControllerSpec |io.fabric8.kubernetes.api.model.ReplicationControllerSpec |The Spec for a Replication Controller
 
+|CamelKubernetesReplicationControllerReplicas |Integer |The number of replicas for a Replication Controller during the Scale operation
+
 |CamelKubernetesPodsLabels |Map |Pod labels
 
 |CamelKubernetesPodName |String |Pod name

http://git-wip-us.apache.org/repos/asf/camel/blob/6c2c8c28/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
index e082933..e5cf741 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
@@ -44,8 +44,8 @@ public class KubernetesConfiguration {
     private String password;
 
     @UriParam(label = "producer", enums = "listNamespaces,listNamespacesByLabels,getNamespace,createNamespace,deleteNamespace,listServices,listServicesByLabels,getService,createService,"
-            + "deleteService,listReplicationControllers,listReplicationControllersByLabels,getReplicationController,createReplicationController,deleteReplicationController,listPods,"
-            + "listPodsByLabels,getPod,createPod,deletePod,listPersistentVolumes,listPersistentVolumesByLabels,getPersistentVolume,listPersistentVolumesClaims,listPersistentVolumesClaimsByLabels,"
+            + "deleteService,listReplicationControllers,listReplicationControllersByLabels,getReplicationController,createReplicationController,deleteReplicationController,scaleReplicationController,"
+            + "listPods,listPodsByLabels,getPod,createPod,deletePod,listPersistentVolumes,listPersistentVolumesByLabels,getPersistentVolume,listPersistentVolumesClaims,listPersistentVolumesClaimsByLabels,"
             + "getPersistentVolumeClaim,createPersistentVolumeClaim,deletePersistentVolumeClaim,listSecrets,listSecretsByLabels,getSecret,createSecret,deleteSecret,listResourcesQuota,"
             + "listResourcesQuotaByLabels,getResourceQuota,createResourceQuota,deleteResourceQuota,listServiceAccounts,listServiceAccountsByLabels,getServiceAccount,createServiceAccount,"
             + "deleteServiceAccount,listNodes,listNodesByLabels,getNode,listConfigMaps,listConfigMapsByLabels,getConfigMap,createConfigMap,deleteConfigMap,listBuilds,listBuildsByLabels,"