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 2018/03/15 10:05:14 UTC

[camel] branch master updated (9f52d3f -> ece661d)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 9f52d3f  Upgrade Chronicle Bytes to version 1.11.3
     new 7a020b8  CAMEL-12354 - Camel-Kubernetes: Add scale operation to deployment component
     new 611920c  Camel-Kubernetes: in Replication Controller producer do not wait for the end of scaling operation
     new ece661d  Camel-Kubernetes: Removed enum from KubernetesOperation configuration option

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../kubernetes/KubernetesConfiguration.java        | 16 +------------
 .../component/kubernetes/KubernetesConstants.java  |  1 +
 .../component/kubernetes/KubernetesOperations.java |  1 +
 .../deployments/KubernetesDeploymentsProducer.java | 27 ++++++++++++++++++++++
 .../KubernetesReplicationControllersProducer.java  |  2 +-
 .../KubernetesDeploymentsProducerTest.java         | 26 +++++++++++++++++++++
 6 files changed, 57 insertions(+), 16 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.

[camel] 01/03: CAMEL-12354 - Camel-Kubernetes: Add scale operation to deployment component

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 7a020b8da981d91a42cfc9567c319a5edc22950b
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Mar 15 10:59:39 2018 +0100

    CAMEL-12354 - Camel-Kubernetes: Add scale operation to deployment component
---
 .../component/kubernetes/KubernetesConstants.java  |  1 +
 .../component/kubernetes/KubernetesOperations.java |  1 +
 .../deployments/KubernetesDeploymentsProducer.java | 27 ++++++++++++++++++++++
 .../KubernetesDeploymentsProducerTest.java         | 26 +++++++++++++++++++++
 4 files changed, 55 insertions(+)

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 4814076..eecc409 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
@@ -57,6 +57,7 @@ public interface KubernetesConstants {
     String KUBERNETES_BUILD_NAME = "CamelKubernetesBuildName";
     String KUBERNETES_BUILD_CONFIGS_LABELS = "CamelKubernetesBuildConfigsLabels";
     String KUBERNETES_BUILD_CONFIG_NAME = "CamelKubernetesBuildConfigName";
+    String KUBERNETES_DEPLOYMENT_REPLICAS = "CamelKubernetesDeploymentReplicas";
 
     // Consumer
     String KUBERNETES_EVENT_ACTION = "CamelKubernetesEventAction";
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java
index 6ea4ed6..4eb8dc5 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java
@@ -91,6 +91,7 @@ public interface KubernetesOperations {
     String GET_DEPLOYMENT = "getDeployment";
     String DELETE_DEPLOYMENT = "deleteDeployment";
     String CREATE_DEPLOYMENT = "createDeployment";
+    String SCALE_DEPLOYMENT = "scaleDeployment";
     
     // Config Maps
     String LIST_CONFIGMAPS = "listConfigMaps";
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
index 29015c5..339810b 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.kubernetes.deployments;
 
 import java.util.Map;
 
+import io.fabric8.kubernetes.api.model.ReplicationController;
 import io.fabric8.kubernetes.api.model.extensions.Deployment;
 import io.fabric8.kubernetes.api.model.extensions.DeploymentBuilder;
 import io.fabric8.kubernetes.api.model.extensions.DeploymentList;
@@ -80,6 +81,10 @@ public class KubernetesDeploymentsProducer extends DefaultProducer {
         case KubernetesOperations.CREATE_DEPLOYMENT:
             doCreateDeployment(exchange, operation);
             break;
+            
+        case KubernetesOperations.SCALE_DEPLOYMENT:
+            doScaleDeployment(exchange, operation);
+            break;
 
         default:
             throw new IllegalArgumentException("Unsupported operation " + operation);
@@ -162,4 +167,26 @@ public class KubernetesDeploymentsProducer extends DefaultProducer {
         MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
         exchange.getOut().setBody(deployment);
     }
+    
+    protected void doScaleDeployment(Exchange exchange, String operation) throws Exception {
+        String deploymentName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, String.class);
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        Integer replicasNumber = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_REPLICAS, Integer.class);
+        if (ObjectHelper.isEmpty(deploymentName)) {
+            LOG.error("Scale a specific deployment require specify a deployment name");
+            throw new IllegalArgumentException("Scale a specific deployment require specify a deployment name");
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("Scale a specific deployment require specify a namespace name");
+            throw new IllegalArgumentException("Scale a specific deployment require specify a namespace name");
+        }
+        if (ObjectHelper.isEmpty(replicasNumber)) {
+            LOG.error("Scale a specific deployment require specify a replicas number");
+            throw new IllegalArgumentException("Scale a specific deployment require specify a replicas number");
+        }
+        Deployment deploymentScaled = getEndpoint().getKubernetesClient().extensions().deployments().inNamespace(namespaceName).withName(deploymentName).scale(replicasNumber, false);
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+        exchange.getOut().setBody(deploymentScaled.getStatus().getReplicas());
+    }
 }
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
index 3b71c13..f1c0b03 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import io.fabric8.kubernetes.api.model.Namespace;
 import io.fabric8.kubernetes.api.model.NamespaceBuilder;
+import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
 import io.fabric8.kubernetes.api.model.Secret;
 import io.fabric8.kubernetes.api.model.SecretBuilder;
 import io.fabric8.kubernetes.api.model.extensions.Deployment;
@@ -120,6 +121,29 @@ public class KubernetesDeploymentsProducerTest extends KubernetesTestSupport {
 
         assertTrue(deDeleted);
     }
+    
+    @Test
+    public void createScaleAndDeleteDeployment() throws Exception {
+        server.expect().withPath("/apis/extensions/v1beta1/namespaces/test/deployments/de1").andReturn(200, new DeploymentBuilder().withNewMetadata().withName("de1")
+            .withResourceVersion("1").endMetadata().withNewSpec().withReplicas(5).endSpec().withNewStatus().withReplicas(1).endStatus().build()).once();
+
+        server.expect().withPath("/apis/extensions/v1beta1/namespaces/test/deployments/de1").andReturn(200, new DeploymentBuilder().withNewMetadata().withName("de1")
+            .withResourceVersion("1").endMetadata().withNewSpec().withReplicas(5).endSpec().withNewStatus().withReplicas(5).endStatus().build()).always();
+        Exchange ex = template.request("direct:scaleDeployment", new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, "de1");
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_REPLICAS, 1);
+            }
+        });
+
+        //Thread.sleep(3000);
+        int replicas = ex.getOut().getBody(Integer.class);
+
+        assertEquals(5, replicas);
+    }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
@@ -134,6 +158,8 @@ public class KubernetesDeploymentsProducerTest extends KubernetesTestSupport {
                         .toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=deleteDeployment");
                 from("direct:createDeployment")
                         .toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=createDeployment");
+                from("direct:scaleDeployment")
+                        .toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=scaleDeployment");
             }
         };
     }

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.

[camel] 03/03: Camel-Kubernetes: Removed enum from KubernetesOperation configuration option

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ece661d04c698398b817a585e8cda9fc67f99a89
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Mar 15 11:02:33 2018 +0100

    Camel-Kubernetes: Removed enum from KubernetesOperation configuration option
---
 .../component/kubernetes/KubernetesConfiguration.java    | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

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 51bd839..8451550 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,21 +44,7 @@ public class KubernetesConfiguration implements Cloneable {
     @UriParam(label = "security", secret = true)
     private String password;
 
-    @UriParam(label = "producer", enums = "listNamespaces,listNamespacesByLabels,getNamespace,createNamespace,deleteNamespace,"
-            + "listServices,listServicesByLabels,getService,createService,"
-            + "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," 
-            + "getBuild,listBuildConfigs,listBuildConfigsByLabels,getBuildConfig")
+    @UriParam(label = "producer")
     private String operation;
 
     @UriParam

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.

[camel] 02/03: Camel-Kubernetes: in Replication Controller producer do not wait for the end of scaling operation

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 611920cfe88e9dd970a518d1bc95dad6e14d3948
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Mar 15 11:00:11 2018 +0100

    Camel-Kubernetes: in Replication Controller producer do not wait for the end of scaling operation
---
 .../KubernetesReplicationControllersProducer.java                       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
index 2d39d6b..8c22b3b 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
@@ -263,7 +263,7 @@ public class KubernetesReplicationControllersProducer extends DefaultProducer {
         }
         ReplicationController rcScaled = getEndpoint().getKubernetesClient()
                 .replicationControllers().inNamespace(namespaceName)
-                .withName(rcName).scale(replicasNumber, true);
+                .withName(rcName).scale(replicasNumber, false);
         
         MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
         exchange.getOut().setBody(rcScaled.getStatus().getReplicas());

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.