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/19 07:14:56 UTC

[camel] 01/02: CAMEL-13994 - listPods operation of kubernetes component dont support namespace option

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 a1948b803fa00dd5c462c7abfee91b2e1e8ff42d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Sep 19 09:10:16 2019 +0200

    CAMEL-13994 - listPods operation of kubernetes component dont support namespace option
---
 .../component/kubernetes/pods/KubernetesPodsProducer.java   |  9 +++++++--
 .../kubernetes/producer/KubernetesPodsProducerTest.java     | 13 ++++++++++++-
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java
index c84c7d0..a28d3ed 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java
@@ -87,8 +87,13 @@ public class KubernetesPodsProducer extends DefaultProducer {
     }
 
     protected void doList(Exchange exchange, String operation) throws Exception {
-        PodList podList = getEndpoint().getKubernetesClient().pods().inAnyNamespace().list();
-
+        PodList podList;
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        if (ObjectHelper.isNotEmpty(namespaceName)) {
+            podList = getEndpoint().getKubernetesClient().pods().inNamespace(namespaceName).list();
+        } else {
+        	podList = getEndpoint().getKubernetesClient().pods().inAnyNamespace().list();
+        }
         MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
         exchange.getOut().setBody(podList.getItems());
     }
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java
index 8eb8fc9..78d9f07 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java
@@ -48,9 +48,20 @@ public class KubernetesPodsProducerTest extends KubernetesTestSupport {
     @Test
     public void listTest() throws Exception {
         server.expect().withPath("/api/v1/pods").andReturn(200, new PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
+        server.expect().withPath("/api/v1/namespaces/test/pods").andReturn(200, new PodListBuilder().addNewItem().and().addNewItem().and().build()).once();
         List<Pod> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+        
+        Exchange ex = template.request("direct:list", new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+            }
+        });
+        List<Pod> resultNamespaced = ex.getOut().getBody(List.class);
+
+        assertEquals(2, resultNamespaced.size());
     }
 
     @Test