You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/04/20 04:46:23 UTC

[camel] branch master updated: Fix listCustomResourcesByLabels (#5434)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new fee4af5  Fix listCustomResourcesByLabels (#5434)
fee4af5 is described below

commit fee4af512b1214a2ee9bb3a9ddfcd71187b3394b
Author: Akihiko (Aki) Kuroda <16...@users.noreply.github.com>
AuthorDate: Tue Apr 20 00:45:37 2021 -0400

    Fix listCustomResourcesByLabels (#5434)
---
 .../KubernetesCustomResourcesProducer.java         |  3 +-
 .../KubernetesCustomResourcesProducerTest.java     | 34 ++++++++++++++++++++++
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesProducer.java
index a3fc5ec..0d84399 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesProducer.java
@@ -114,7 +114,8 @@ public class KubernetesCustomResourcesProducer extends DefaultProducer {
     protected void doListByLabels(Exchange exchange, String operation, String namespaceName) throws Exception {
         Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRD_LABELS, Map.class);
         JsonObject customResourcesListJSON = new JsonObject(
-                getEndpoint().getKubernetesClient().customResource(getCRDContext(exchange.getIn())).list(namespaceName));
+                getEndpoint().getKubernetesClient().customResource(getCRDContext(exchange.getIn())).list(namespaceName,
+                        labels));
         if (LOG.isDebugEnabled()) {
             LOG.debug(customResourcesListJSON.toString());
         }
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCustomResourcesProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCustomResourcesProducerTest.java
index 813eff4..9a54816 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCustomResourcesProducerTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCustomResourcesProducerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -105,6 +106,37 @@ public class KubernetesCustomResourcesProducerTest extends KubernetesTestSupport
     }
 
     @Test
+    public void listByLabelsTest() throws Exception {
+        JsonObject instance = new JsonObject(getClient().customResource(getCustomResourceContext()).load(gitHubSourceString));
+        JsonObject gitHubSourceList = new JsonObject();
+        JsonArray list = new JsonArray();
+        list.add(instance);
+        gitHubSourceList.put("items", list);
+
+        server.expect().get().withPath("/apis/sources.knative.dev/v1alpha1/namespaces/test/githubsources?labelSelector="
+                                       + toUrlEncoded("key1=value1,key2=value2"))
+                .andReturn(200, gitHubSourceList.toJson()).once();
+
+        Exchange ex = template.request("direct:listCustomResourcesByLabels", exchange -> {
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRD_NAME, "githubsources.sources.knative.dev");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRD_GROUP, "sources.knative.dev");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRD_SCOPE, "Namespaced");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRD_VERSION, "v1alpha1");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRD_PLURAL, "githubsources");
+            Map<String, String> labels = new HashMap<>();
+            labels.put("key1", "value1");
+            labels.put("key2", "value2");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRD_LABELS, labels);
+
+        });
+
+        List<Map<String, Object>> result = ex.getMessage().getBody(List.class);
+
+        assertTrue(1 == result.size());
+    }
+
+    @Test
     public void createAndDeleteTest() throws Exception {
         JsonObject instance = new JsonObject(getClient().customResource(getCustomResourceContext()).load(gitHubSourceString));
         JsonObject gitHubSourceList = new JsonObject();
@@ -175,6 +207,8 @@ public class KubernetesCustomResourcesProducerTest extends KubernetesTestSupport
                         .toF("kubernetes-custom-resources:///?kubernetesClient=#kubernetesClient&operation=getCustomResource");
                 from("direct:listCustomResources").toF(
                         "kubernetes-custom-resources:///?kubernetesClient=#kubernetesClient&operation=listCustomResources");
+                from("direct:listCustomResourcesByLabels").toF(
+                        "kubernetes-custom-resources:///?kubernetesClient=#kubernetesClient&operation=listCustomResourcesByLabels");
                 from("direct:deleteCustomResource").toF(
                         "kubernetes-custom-resources:///?kubernetesClient=#kubernetesClient&operation=deleteCustomResource");
                 from("direct:createCustomResource").toF(