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 2019/09/17 08:25:27 UTC

[camel] branch camel-2.x updated (7cb8856 -> 03e3dcd)

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

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


    from 7cb8856  CAMEL-13978 - Fixed CS
     new f27b23c  CAMEL-13983 - Provide CreateNode feature in Kubernetes Component
     new 83524f4  Camel-Kubernetes: Fixed CS
     new 03e3dcd  Camel-Kubernetes: Fixed CS

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:
 .../component/kubernetes/KubernetesConstants.java  |  1 +
 .../component/kubernetes/KubernetesOperations.java |  3 +-
 .../config_maps/KubernetesConfigMapsConsumer.java  |  2 +-
 .../kubernetes/consumer/common/ConfigMapEvent.java |  2 +-
 .../kubernetes/nodes/KubernetesNodesProducer.java  | 30 ++++++++++++++++++
 .../consumer/KubernetesConfigMapsConsumerTest.java |  2 +-
 .../producer/KubernetesNodesProducerTest.java      | 36 +++++++++++++++++++---
 7 files changed, 68 insertions(+), 8 deletions(-)


[camel] 02/03: Camel-Kubernetes: Fixed CS

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

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

commit 83524f460788e2aa8f0ec17463ae4d49c74e923d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Sep 17 09:53:53 2019 +0200

    Camel-Kubernetes: Fixed CS
---
 .../component/kubernetes/nodes/KubernetesNodesProducer.java      | 4 ++--
 .../kubernetes/producer/KubernetesNodesProducerTest.java         | 9 ++++-----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java
index 0e10b0c..73113d3 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java
@@ -75,7 +75,7 @@ public class KubernetesNodesProducer extends DefaultProducer {
         case KubernetesOperations.GET_NODE_OPERATION:
             doGetNode(exchange, operation);
             break;
-            
+
         case KubernetesOperations.CREATE_NODE_OPERATION:
             doCreateNode(exchange, operation);
             break;
@@ -117,7 +117,7 @@ public class KubernetesNodesProducer extends DefaultProducer {
         MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
         exchange.getOut().setBody(node);
     }
-    
+
     protected void doCreateNode(Exchange exchange, String operation) throws Exception {
         Node node = null;
         String nodeName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NODE_NAME, String.class);
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java
index a5acf1a..abff2fd 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java
@@ -81,13 +81,12 @@ public class KubernetesNodesProducerTest extends KubernetesTestSupport {
         
         assertEquals(3, result.size());
     }
-    
+
     @Test
     public void createNodeTest() throws Exception {
-    	ObjectMeta meta = new ObjectMeta();
-    	meta.setName("test");
-        server.expect().withPath("/api/v1/nodes")
-            .andReturn(200, new NodeBuilder().withMetadata(meta).build()).once();
+        ObjectMeta meta = new ObjectMeta();
+        meta.setName("test");
+        server.expect().withPath("/api/v1/nodes").andReturn(200, new NodeBuilder().withMetadata(meta).build()).once();
         Exchange ex = template.request("direct:createNode", new Processor() {
 
             @Override


[camel] 03/03: Camel-Kubernetes: Fixed CS

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

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

commit 03e3dcdb3cb2b1d2e5a540daf747a024b2424fb7
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Sep 17 10:23:27 2019 +0200

    Camel-Kubernetes: Fixed CS
---
 .../component/kubernetes/config_maps/KubernetesConfigMapsConsumer.java  | 2 +-
 .../camel/component/kubernetes/consumer/common/ConfigMapEvent.java      | 2 +-
 .../component/kubernetes/consumer/KubernetesConfigMapsConsumerTest.java | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsConsumer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsConsumer.java
index 956cfdc..a3e8229 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsConsumer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsConsumer.java
@@ -1,4 +1,4 @@
-/*
+/**
  * 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.
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/ConfigMapEvent.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/ConfigMapEvent.java
index d225219..258be44 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/ConfigMapEvent.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/ConfigMapEvent.java
@@ -1,4 +1,4 @@
-/*
+/**
  * 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.
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/consumer/KubernetesConfigMapsConsumerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/consumer/KubernetesConfigMapsConsumerTest.java
index 9ed6575..37fbcd2 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/consumer/KubernetesConfigMapsConsumerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/consumer/KubernetesConfigMapsConsumerTest.java
@@ -1,4 +1,4 @@
-/*
+/**
  * 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.


[camel] 01/03: CAMEL-13983 - Provide CreateNode feature in Kubernetes Component

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

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

commit f27b23cc0e004ab8a28a2f01da04d547b7665fbb
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Sep 17 09:48:23 2019 +0200

    CAMEL-13983 - Provide CreateNode feature in Kubernetes Component
---
 .../component/kubernetes/KubernetesConstants.java  |  1 +
 .../component/kubernetes/KubernetesOperations.java |  3 +-
 .../kubernetes/nodes/KubernetesNodesProducer.java  | 30 ++++++++++++++++++
 .../producer/KubernetesNodesProducerTest.java      | 37 +++++++++++++++++++---
 4 files changed, 66 insertions(+), 5 deletions(-)

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 3f5b3d9..a15a3d8 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
@@ -47,6 +47,7 @@ public interface KubernetesConstants {
     String KUBERNETES_SERVICE_ACCOUNT = "CamelKubernetesServiceAccount";
     String KUBERNETES_NODES_LABELS = "CamelKubernetesNodesLabels";
     String KUBERNETES_NODE_NAME = "CamelKubernetesNodeName";
+    String KUBERNETES_NODE_SPEC = "CamelKubernetesNodeSpec";
     String KUBERNETES_DEPLOYMENTS_LABELS = "CamelKubernetesDeploymentsLabels";
     String KUBERNETES_DEPLOYMENT_NAME = "CamelKubernetesDeploymentName";
     String KUBERNETES_DEPLOYMENT_SPEC = "CamelKubernetesDeploymentSpec";
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 936d6a7..60f4745 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
@@ -84,7 +84,8 @@ public interface KubernetesOperations {
     String LIST_NODES = "listNodes";
     String LIST_NODES_BY_LABELS_OPERATION = "listNodesByLabels";
     String GET_NODE_OPERATION = "getNode";
-    
+    String CREATE_NODE_OPERATION = "createNode";
+
     // HPA
     String LIST_HPA = "listHPA";
     String LIST_HPA_BY_LABELS_OPERATION = "listHPAByLabels";
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java
index 058ae66..0e10b0c 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesProducer.java
@@ -19,8 +19,13 @@ package org.apache.camel.component.kubernetes.nodes;
 import java.util.Map;
 
 import io.fabric8.kubernetes.api.model.DoneableNode;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerBuilder;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerSpec;
 import io.fabric8.kubernetes.api.model.Node;
+import io.fabric8.kubernetes.api.model.NodeBuilder;
 import io.fabric8.kubernetes.api.model.NodeList;
+import io.fabric8.kubernetes.api.model.NodeSpec;
 import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation;
 import io.fabric8.kubernetes.client.dsl.Resource;
 
@@ -70,6 +75,10 @@ public class KubernetesNodesProducer extends DefaultProducer {
         case KubernetesOperations.GET_NODE_OPERATION:
             doGetNode(exchange, operation);
             break;
+            
+        case KubernetesOperations.CREATE_NODE_OPERATION:
+            doCreateNode(exchange, operation);
+            break;
 
         default:
             throw new IllegalArgumentException("Unsupported operation " + operation);
@@ -108,4 +117,25 @@ public class KubernetesNodesProducer extends DefaultProducer {
         MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
         exchange.getOut().setBody(node);
     }
+    
+    protected void doCreateNode(Exchange exchange, String operation) throws Exception {
+        Node node = null;
+        String nodeName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NODE_NAME, String.class);
+        NodeSpec nodeSpec = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NODE_SPEC, NodeSpec.class);
+        if (ObjectHelper.isEmpty(nodeName)) {
+            log.error("Create a specific node require specify a node name");
+            throw new IllegalArgumentException("Create a specific node require specify a node name");
+        }
+        if (ObjectHelper.isEmpty(nodeSpec)) {
+            log.error("Create a specific node require specify a node spec bean");
+            throw new IllegalArgumentException("Create a specific node require specify a node spec bean");
+        }
+        Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, Map.class);
+        Node nodeCreating = new NodeBuilder().withNewMetadata().withName(nodeName).withLabels(labels).endMetadata().withSpec(nodeSpec).build();
+        node = getEndpoint().getKubernetesClient().nodes().create(nodeCreating);
+        System.err.println(node.toString());
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+        exchange.getOut().setBody(node);
+    }
 }
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java
index c725738..a5acf1a 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesNodesProducerTest.java
@@ -21,7 +21,12 @@ import java.util.List;
 import java.util.Map;
 
 import io.fabric8.kubernetes.api.model.Node;
+import io.fabric8.kubernetes.api.model.NodeBuilder;
 import io.fabric8.kubernetes.api.model.NodeListBuilder;
+import io.fabric8.kubernetes.api.model.NodeSpec;
+import io.fabric8.kubernetes.api.model.NodeSpecBuilder;
+import io.fabric8.kubernetes.api.model.ObjectMeta;
+import io.fabric8.kubernetes.client.KubernetesClient;
 import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
 
 import org.apache.camel.Exchange;
@@ -76,16 +81,40 @@ public class KubernetesNodesProducerTest extends KubernetesTestSupport {
         
         assertEquals(3, result.size());
     }
+    
+    @Test
+    public void createNodeTest() throws Exception {
+    	ObjectMeta meta = new ObjectMeta();
+    	meta.setName("test");
+        server.expect().withPath("/api/v1/nodes")
+            .andReturn(200, new NodeBuilder().withMetadata(meta).build()).once();
+        Exchange ex = template.request("direct:createNode", new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                Map<String, String> labels = new HashMap<>();
+                labels.put("key1", "value1");
+                labels.put("key2", "value2");
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NODES_LABELS, labels);
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NODE_NAME, "test");
+                NodeSpec spec = new NodeSpecBuilder().build();
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NODE_SPEC, spec);
+            }
+        });
+
+        Node result = ex.getOut().getBody(Node.class);
+
+        assertEquals("test", result.getMetadata().getName());
+    }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:list")
-                        .toF("kubernetes-nodes:///?kubernetesClient=#kubernetesClient&operation=listNodes");
-                from("direct:listByLabels")
-                        .toF("kubernetes-nodes:///?kubernetesClient=#kubernetesClient&operation=listNodesByLabels");
+                from("direct:list").toF("kubernetes-nodes:///?kubernetesClient=#kubernetesClient&operation=listNodes");
+                from("direct:listByLabels").toF("kubernetes-nodes:///?kubernetesClient=#kubernetesClient&operation=listNodesByLabels");
+                from("direct:createNode").toF("kubernetes-nodes:///?kubernetesClient=#kubernetesClient&operation=createNode");
             }
         };
     }