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