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,"