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 4a9702a89fb394421ec8e967217d64ac7e3b04c3 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Mon Sep 16 16:42:05 2019 +0200 CAMEL-13978 - Create ConfigMap Watch feature in Kubernetes Component, fixed the resourceName usage --- .../config_maps/KubernetesConfigMapsConsumer.java | 7 +++--- .../kubernetes/KubernetesTestSupport.java | 2 +- .../consumer/KubernetesConfigMapsConsumerTest.java | 27 ++++++++++++++++++++-- 3 files changed, 30 insertions(+), 6 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 c93a708..1b7128d 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 @@ -24,6 +24,7 @@ import io.fabric8.kubernetes.api.model.DoneableConfigMap; import io.fabric8.kubernetes.client.KubernetesClientException; import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watcher; +import io.fabric8.kubernetes.client.dsl.FilterWatchListDeletable; import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation; import io.fabric8.kubernetes.client.dsl.Resource; @@ -87,13 +88,13 @@ public class KubernetesConfigMapsConsumer extends DefaultConsumer { @Override public void run() { - NonNamespaceOperation<ConfigMap, ConfigMapList, DoneableConfigMap, Resource<ConfigMap, DoneableConfigMap>> w = getEndpoint().getKubernetesClient().configMaps(); + FilterWatchListDeletable<ConfigMap, ConfigMapList, Boolean, Watch, Watcher<ConfigMap>> w = null; if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelKey()) && ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelValue())) { - w.withLabel(getEndpoint().getKubernetesConfiguration().getLabelKey(), getEndpoint().getKubernetesConfiguration().getLabelValue()); + w = getEndpoint().getKubernetesClient().configMaps().withLabel(getEndpoint().getKubernetesConfiguration().getLabelKey(), getEndpoint().getKubernetesConfiguration().getLabelValue()); } if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getResourceName())) { - w.withName(getEndpoint().getKubernetesConfiguration().getResourceName()); + w = (FilterWatchListDeletable<ConfigMap, ConfigMapList, Boolean, Watch, Watcher<ConfigMap>>) getEndpoint().getKubernetesClient().configMaps().withName(getEndpoint().getKubernetesConfiguration().getResourceName()); } watch = w.watch(new Watcher<ConfigMap>() { diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/KubernetesTestSupport.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/KubernetesTestSupport.java index 0f17738..8cf45f9 100644 --- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/KubernetesTestSupport.java +++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/KubernetesTestSupport.java @@ -31,7 +31,7 @@ public class KubernetesTestSupport extends CamelTestSupport { @Override public void setUp() throws Exception { // INSERT credentials and host here - authToken = ""; + authToken = "IVStwJAV_7p26ifo1NX1R3cjNDLkGFUaU0R6VW6dbwo"; host = "https://192.168.99.100:8443"; super.setUp(); } 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 5b62438..a9e01c5 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 @@ -61,6 +61,19 @@ public class KubernetesConfigMapsConsumerTest extends KubernetesTestSupport { exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAP_DATA, configMapData); } }); + + ex = template.request("direct:createConfigmap", new Processor() { + + @Override + public void process(Exchange exchange) throws Exception { + exchange.getIn().removeHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS); + exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "default"); + exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAP_NAME, "test1"); + HashMap<String, String> configMapData = new HashMap<>(); + configMapData.put("test", "test"); + exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAP_DATA, configMapData); + } + }); ex = template.request("direct:deleteConfigmap", new Processor() { @@ -70,6 +83,16 @@ public class KubernetesConfigMapsConsumerTest extends KubernetesTestSupport { exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAP_NAME, "test"); } }); + + ex = template.request("direct:deleteConfigmap", new Processor() { + + @Override + public void process(Exchange exchange) throws Exception { + exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "default"); + exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAP_NAME, "test1"); + } + }); + boolean cmDeleted = ex.getOut().getBody(Boolean.class); @@ -87,7 +110,7 @@ public class KubernetesConfigMapsConsumerTest extends KubernetesTestSupport { public void configure() throws Exception { from("direct:createConfigmap").toF("kubernetes-config-maps://%s?oauthToken=%s&operation=createConfigMap", host, authToken); from("direct:deleteConfigmap").toF("kubernetes-config-maps://%s?oauthToken=%s&operation=deleteConfigMap", host, authToken); - fromF("kubernetes-config-maps://%s?oauthToken=%s&namespace=default&labelKey=this&labelValue=rocks", host, authToken).process(new KubernertesProcessor()) + fromF("kubernetes-config-maps://%s?oauthToken=%s&namespace=default&resourceName=test", host, authToken).process(new KubernertesProcessor()) .to(mockResultEndpoint); } }; @@ -98,7 +121,7 @@ public class KubernetesConfigMapsConsumerTest extends KubernetesTestSupport { public void process(Exchange exchange) throws Exception { Message in = exchange.getIn(); ConfigMap cm = exchange.getIn().getBody(ConfigMap.class); - log.info("Got event with configmap name: " + cm.getMetadata().getName() + " and action " + in.getHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION)); + System.err.println("Got event with configmap name: " + cm.getMetadata().getName() + " and action " + in.getHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION)); } } }