This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 04b7a12fcbf CAMEL-21738: camel-kubernetes: Use a common approach to
listing namespaced resources (#17263)
04b7a12fcbf is described below
commit 04b7a12fcbfe71b757795aabc2524a6eb6ba08c6
Author: Andrej Vaňo <[email protected]>
AuthorDate: Tue Feb 25 16:07:16 2025 +0100
CAMEL-21738: camel-kubernetes: Use a common approach to listing namespaced
resources (#17263)
---
.../config_maps/KubernetesConfigMapsProducer.java | 5 ++
.../cronjob/KubernetesCronJobProducer.java | 34 +++++++++----
.../deployments/KubernetesDeploymentsProducer.java | 13 +++--
.../events/KubernetesEventsProducer.java | 24 ++++-----
.../kubernetes/hpa/KubernetesHPAProducer.java | 28 +++++++----
.../kubernetes/job/KubernetesJobProducer.java | 22 ++++++---
.../KubernetesPersistentVolumesClaimsProducer.java | 36 ++++++++------
.../kubernetes/pods/KubernetesPodsProducer.java | 23 +++++----
.../KubernetesReplicationControllersProducer.java | 29 +++++------
.../KubernetesResourcesQuotaProducer.java | 23 +++++++--
.../secrets/KubernetesSecretsProducer.java | 33 +++++++------
.../KubernetesServiceAccountsProducer.java | 34 +++++++------
.../services/KubernetesServicesProducer.java | 33 ++++++-------
.../producer/KubernetesConfigMapsProducerTest.java | 9 ++--
.../producer/KubernetesCronJobProducerTest.java | 57 ++++++++++++++++------
.../KubernetesDeploymentsProducerTest.java | 39 ++++++++++-----
.../producer/KubernetesEventsProducerTest.java | 30 ++++++++----
.../producer/KubernetesHPAProducerTest.java | 49 +++++++++++++------
.../producer/KubernetesJobProducerTest.java | 42 +++++++++++-----
...ernetesPersistentVolumesClaimsProducerTest.java | 40 ++++++++++-----
.../producer/KubernetesPodsProducerTest.java | 32 ++++++++----
...bernetesReplicationControllersProducerTest.java | 37 ++++++++++----
.../KubernetesResourcesQuotaProducerTest.java | 26 +++++++---
.../producer/KubernetesSecretsProducerTest.java | 36 ++++++++++----
.../KubernetesServiceAccountsProducerTest.java | 37 ++++++++++----
.../producer/KubernetesServicesProducerTest.java | 44 ++++++++++++-----
26 files changed, 544 insertions(+), 271 deletions(-)
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
index a6ab9bba8b5..c6a6a383788 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
@@ -104,6 +104,11 @@ public class KubernetesConfigMapsProducer extends
DefaultProducer {
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS,
Map.class);
ConfigMapList configMapsList;
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing ConfigMaps by labels requires specifying
labels");
+ throw new IllegalArgumentException("Listing ConfigMaps by labels
requires specifying labels");
+ }
+
if (ObjectHelper.isEmpty(namespace)) {
configMapsList =
getEndpoint().getKubernetesClient().configMaps().inAnyNamespace().withLabels(labels).list();
} else {
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
index 87d62de04c0..1b4473a18f2 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
@@ -20,8 +20,10 @@ import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
-import io.fabric8.kubernetes.api.model.batch.v1.*;
-import io.fabric8.kubernetes.client.dsl.MixedOperation;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJob;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobList;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec;
import io.fabric8.kubernetes.client.dsl.Resource;
import org.apache.camel.Exchange;
import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
@@ -90,23 +92,37 @@ public class KubernetesCronJobProducer extends
DefaultProducer {
}
protected void doList(Exchange exchange) {
- CronJobList cronJobList =
getEndpoint().getKubernetesClient().batch().v1().cronjobs().list();
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ CronJobList cronJobList;
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ cronJobList =
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inAnyNamespace().list();
+ } else {
+ cronJobList =
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespace).list();
+ }
prepareOutboundMessage(exchange, cronJobList.getItems());
}
protected void doListCronJobByLabel(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS,
Map.class);
+ CronJobList cronJobList;
+
if (ObjectHelper.isEmpty(labels)) {
- throw new IllegalArgumentException("Cron Job by labels require
specify a labels set");
+ LOG.error("Listing CronJobs by labels requires specifying labels");
+ throw new IllegalArgumentException("Listing CronJobs by labels
requires specifying labels");
}
- MixedOperation<CronJob, CronJobList, Resource<CronJob>> cronJobs
- = getEndpoint().getKubernetesClient().batch().v1().cronjobs();
-
- CronJobList jobList = cronJobs.withLabels(labels).list();
+ if (ObjectHelper.isEmpty(namespace)) {
+ cronJobList
+ =
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inAnyNamespace().withLabels(labels).list();
+ } else {
+ cronJobList =
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespace).withLabels(labels)
+ .list();
+ }
- prepareOutboundMessage(exchange, jobList.getItems());
+ prepareOutboundMessage(exchange, cronJobList.getItems());
}
protected void doGetCronJob(Exchange exchange) {
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
index 69481f4d22a..e1d5b5a0acb 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
@@ -96,10 +96,10 @@ public class KubernetesDeploymentsProducer extends
DefaultProducer {
String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
DeploymentList deploymentsList;
- if (ObjectHelper.isNotEmpty(namespace)) {
- deploymentsList =
getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespace).list();
+ if (ObjectHelper.isEmpty(namespace)) {
+ deploymentsList =
getEndpoint().getKubernetesClient().apps().deployments().inAnyNamespace().list();
} else {
- deploymentsList =
getEndpoint().getKubernetesClient().apps().deployments().list();
+ deploymentsList =
getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespace).list();
}
prepareOutboundMessage(exchange, deploymentsList.getItems());
@@ -111,13 +111,18 @@ public class KubernetesDeploymentsProducer extends
DefaultProducer {
MixedOperation<Deployment, DeploymentList,
RollableScalableResource<Deployment>> deployments = getEndpoint()
.getKubernetesClient().apps().deployments();
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing Deployments by labels requires specifying
labels");
+ throw new IllegalArgumentException("Listing Deployments by labels
requires specifying labels");
+ }
+
String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
DeploymentList deploymentsList;
if (ObjectHelper.isNotEmpty(namespace)) {
deploymentsList =
deployments.inNamespace(namespace).withLabels(labels).list();
} else {
- deploymentsList = deployments.withLabels(labels).list();
+ deploymentsList =
deployments.inAnyNamespace().withLabels(labels).list();
}
prepareOutboundMessage(exchange, deploymentsList.getItems());
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
index 08bf4c45ca0..3a65f05e3d6 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
@@ -91,29 +91,31 @@ public class KubernetesEventsProducer extends
DefaultProducer {
protected void doList(Exchange exchange) {
EventList eventList;
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
- if (ObjectHelper.isNotEmpty(namespaceName)) {
- eventList =
getEndpoint().getKubernetesClient().events().v1().events().inNamespace(namespaceName).list();
- } else {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ if (ObjectHelper.isEmpty(namespace)) {
eventList =
getEndpoint().getKubernetesClient().events().v1().events().inAnyNamespace().list();
+ } else {
+ eventList =
getEndpoint().getKubernetesClient().events().v1().events().inNamespace(namespace).list();
}
prepareOutboundMessage(exchange, eventList.getItems());
}
protected void doListEventsByLabel(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS,
Map.class);
+ EventList eventList;
+
if (ObjectHelper.isEmpty(labels)) {
LOG.error("Get events by labels require specify a labels set");
throw new IllegalArgumentException("Get events by labels require
specify a labels set");
}
- EventList eventList = getEndpoint().getKubernetesClient()
- .events()
- .v1()
- .events()
- .inAnyNamespace()
- .withLabels(labels)
- .list();
+ if (ObjectHelper.isEmpty(namespace)) {
+ eventList =
getEndpoint().getKubernetesClient().events().v1().events().inAnyNamespace().withLabels(labels).list();
+ } else {
+ eventList =
getEndpoint().getKubernetesClient().events().v1().events().inNamespace(namespace).withLabels(labels)
+ .list();
+ }
prepareOutboundMessage(exchange, eventList.getItems());
}
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
index 10a9f707c89..5f9167914d6 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
@@ -87,26 +87,36 @@ public class KubernetesHPAProducer extends DefaultProducer {
}
protected void doList(Exchange exchange) {
- HorizontalPodAutoscalerList hpaList
- =
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().list();
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ HorizontalPodAutoscalerList hpaList;
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ hpaList =
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inAnyNamespace().list();
+ } else {
+ hpaList =
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inNamespace(namespace)
+ .list();
+ }
prepareOutboundMessage(exchange, hpaList.getItems());
}
protected void doListHPAByLabel(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_LABELS,
Map.class);
+ HorizontalPodAutoscalerList hpaList;
+
if (ObjectHelper.isEmpty(labels)) {
LOG.error("Get HPA by labels require specify a labels set");
throw new IllegalArgumentException("Get HPA by labels require
specify a labels set");
}
- HorizontalPodAutoscalerList hpaList = getEndpoint()
- .getKubernetesClient()
- .autoscaling()
- .v1()
- .horizontalPodAutoscalers()
- .withLabels(labels)
- .list();
+ if (ObjectHelper.isEmpty(namespace)) {
+ hpaList =
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inAnyNamespace()
+ .withLabels(labels).list();
+ } else {
+ hpaList =
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inNamespace(namespace)
+ .withLabels(labels).list();
+ }
prepareOutboundMessage(exchange, hpaList.getItems());
}
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
index 12f46b1a760..a60b6261e9b 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
@@ -24,9 +24,7 @@ import io.fabric8.kubernetes.api.model.batch.v1.Job;
import io.fabric8.kubernetes.api.model.batch.v1.JobBuilder;
import io.fabric8.kubernetes.api.model.batch.v1.JobList;
import io.fabric8.kubernetes.api.model.batch.v1.JobSpec;
-import io.fabric8.kubernetes.client.dsl.MixedOperation;
import io.fabric8.kubernetes.client.dsl.Resource;
-import io.fabric8.kubernetes.client.dsl.ScalableResource;
import org.apache.camel.Exchange;
import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
import org.apache.camel.component.kubernetes.KubernetesConstants;
@@ -94,21 +92,33 @@ public class KubernetesJobProducer extends DefaultProducer {
}
protected void doList(Exchange exchange) {
- JobList jobList =
getEndpoint().getKubernetesClient().batch().v1().jobs().list();
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ JobList jobList;
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ jobList =
getEndpoint().getKubernetesClient().batch().v1().jobs().inAnyNamespace().list();
+ } else {
+ jobList =
getEndpoint().getKubernetesClient().batch().v1().jobs().inNamespace(namespace).list();
+ }
prepareOutboundMessage(exchange, jobList.getItems());
}
protected void doListJobByLabel(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_LABELS,
Map.class);
+ JobList jobList;
+
if (ObjectHelper.isEmpty(labels)) {
LOG.error("Get Job by labels require specify a labels set");
throw new IllegalArgumentException("Get Job by labels require
specify a labels set");
}
- MixedOperation<Job, JobList, ScalableResource<Job>> jobs =
getEndpoint().getKubernetesClient().batch().v1().jobs();
-
- JobList jobList = jobs.withLabels(labels).list();
+ if (ObjectHelper.isEmpty(namespace)) {
+ jobList =
getEndpoint().getKubernetesClient().batch().v1().jobs().inAnyNamespace().withLabels(labels).list();
+ } else {
+ jobList =
getEndpoint().getKubernetesClient().batch().v1().jobs().inNamespace(namespace).withLabels(labels).list();
+ }
prepareOutboundMessage(exchange, jobList.getItems());
}
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
index 50a23a23b9a..6376a9260d6 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
@@ -87,29 +87,33 @@ public class KubernetesPersistentVolumesClaimsProducer
extends DefaultProducer {
}
protected void doList(Exchange exchange) {
- PersistentVolumeClaimList persistentVolumeClaimList
- =
getEndpoint().getKubernetesClient().persistentVolumeClaims().list();
- prepareOutboundMessage(exchange, persistentVolumeClaimList.getItems());
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ PersistentVolumeClaimList pvcList;
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ pvcList =
getEndpoint().getKubernetesClient().persistentVolumeClaims().inAnyNamespace().list();
+ } else {
+ pvcList =
getEndpoint().getKubernetesClient().persistentVolumeClaims().inNamespace(namespace).list();
+ }
+
+ prepareOutboundMessage(exchange, pvcList.getItems());
}
protected void doListPersistentVolumesClaimsByLabels(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels
=
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS,
Map.class);
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
PersistentVolumeClaimList pvcList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- pvcList = getEndpoint()
- .getKubernetesClient()
- .persistentVolumeClaims()
- .inNamespace(namespaceName)
- .withLabels(labels)
- .list();
+
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing PersistentVolumeClaims by labels requires
specifying labels");
+ throw new IllegalArgumentException("Listing PersistentVolumeClaims
by labels requires specifying labels");
+ }
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ pvcList =
getEndpoint().getKubernetesClient().persistentVolumeClaims().inAnyNamespace().withLabels(labels).list();
} else {
- pvcList = getEndpoint()
- .getKubernetesClient()
- .persistentVolumeClaims()
- .inAnyNamespace()
- .withLabels(labels)
+ pvcList =
getEndpoint().getKubernetesClient().persistentVolumeClaims().inNamespace(namespace).withLabels(labels)
.list();
}
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 c6fef5f3b3a..7a95bf151cf 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,28 +87,33 @@ public class KubernetesPodsProducer extends DefaultProducer
{
}
protected void doList(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
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 {
+
+ if (ObjectHelper.isEmpty(namespace)) {
podList =
getEndpoint().getKubernetesClient().pods().inAnyNamespace().list();
+ } else {
+ podList =
getEndpoint().getKubernetesClient().pods().inNamespace(namespace).list();
}
+
prepareOutboundMessage(exchange, podList.getItems());
}
protected void doListPodsByLabel(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_PODS_LABELS,
Map.class);
+ PodList podList;
+
if (ObjectHelper.isEmpty(labels)) {
LOG.error("Get pods by labels require specify a labels set");
throw new IllegalArgumentException("Get pods by labels require
specify a labels set");
}
- PodList podList = getEndpoint().getKubernetesClient()
- .pods()
- .inAnyNamespace()
- .withLabels(labels)
- .list();
+ if (ObjectHelper.isEmpty(namespace)) {
+ podList =
getEndpoint().getKubernetesClient().pods().inAnyNamespace().withLabels(labels).list();
+ } else {
+ podList =
getEndpoint().getKubernetesClient().pods().inNamespace(namespace).withLabels(labels).list();
+ }
prepareOutboundMessage(exchange, podList.getItems());
}
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
index 5352d473598..83e284e82a4 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
@@ -25,9 +25,7 @@ import
io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
import io.fabric8.kubernetes.api.model.ReplicationControllerList;
import io.fabric8.kubernetes.api.model.ReplicationControllerSpec;
import io.fabric8.kubernetes.api.model.StatusDetails;
-import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation;
import io.fabric8.kubernetes.client.dsl.Resource;
-import io.fabric8.kubernetes.client.dsl.RollableScalableResource;
import org.apache.camel.Exchange;
import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
import org.apache.camel.component.kubernetes.KubernetesConstants;
@@ -93,39 +91,36 @@ public class KubernetesReplicationControllersProducer
extends DefaultProducer {
}
protected void doList(Exchange exchange) {
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
ReplicationControllerList rcList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- rcList =
getEndpoint().getKubernetesClient().replicationControllers().inNamespace(namespaceName).list();
- } else {
+ if (ObjectHelper.isEmpty(namespace)) {
rcList =
getEndpoint().getKubernetesClient().replicationControllers().inAnyNamespace().list();
+ } else {
+ rcList =
getEndpoint().getKubernetesClient().replicationControllers().inNamespace(namespace).list();
}
prepareOutboundMessage(exchange, rcList.getItems());
}
protected void doListReplicationControllersByLabels(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels
=
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLERS_LABELS,
Map.class);
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
ReplicationControllerList rcList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- NonNamespaceOperation<ReplicationController,
ReplicationControllerList, RollableScalableResource<ReplicationController>>
replicationControllers
- = getEndpoint()
-
.getKubernetesClient().replicationControllers().inNamespace(namespaceName);
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing ReplicationControllers by labels requires
specifying labels");
+ throw new IllegalArgumentException("Listing ReplicationControllers
by labels requires specifying labels");
+ }
- rcList = replicationControllers.withLabels(labels).list();
+ if (ObjectHelper.isEmpty(namespace)) {
+ rcList =
getEndpoint().getKubernetesClient().replicationControllers().inAnyNamespace().withLabels(labels).list();
} else {
- rcList = getEndpoint().getKubernetesClient()
- .replicationControllers()
- .inAnyNamespace()
- .withLabels(labels)
+ rcList =
getEndpoint().getKubernetesClient().replicationControllers().inNamespace(namespace).withLabels(labels)
.list();
}
prepareOutboundMessage(exchange, rcList.getItems());
-
}
protected void doGetReplicationController(Exchange exchange) {
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
index 97da82798ab..7d1eecdc79b 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
@@ -87,20 +87,33 @@ public class KubernetesResourcesQuotaProducer extends
DefaultProducer {
}
protected void doList(Exchange exchange) {
- ResourceQuotaList resList =
getEndpoint().getKubernetesClient().resourceQuotas().inAnyNamespace().list();
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ ResourceQuotaList resList;
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ resList =
getEndpoint().getKubernetesClient().resourceQuotas().inAnyNamespace().list();
+ } else {
+ resList =
getEndpoint().getKubernetesClient().resourceQuotas().inNamespace(namespace).list();
+ }
prepareOutboundMessage(exchange, resList.getItems());
}
protected void doListResourceQuotasByLabels(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels
=
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_RESOURCES_QUOTA_LABELS,
Map.class);
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
ResourceQuotaList resList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- resList =
getEndpoint().getKubernetesClient().resourceQuotas().inNamespace(namespaceName).withLabels(labels).list();
- } else {
+
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing ResourceQuotas by labels requires specifying
labels");
+ throw new IllegalArgumentException("Listing ResourceQuotas by
labels requires specifying labels");
+ }
+
+ if (ObjectHelper.isEmpty(namespace)) {
resList =
getEndpoint().getKubernetesClient().resourceQuotas().inAnyNamespace().withLabels(labels).list();
+ } else {
+ resList =
getEndpoint().getKubernetesClient().resourceQuotas().inNamespace(namespace).withLabels(labels).list();
}
prepareOutboundMessage(exchange, resList.getItems());
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
index 9328ebd8b1b..affa04104d3 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
@@ -86,27 +86,32 @@ public class KubernetesSecretsProducer extends
DefaultProducer {
}
protected void doList(Exchange exchange) {
- SecretList secretsList =
getEndpoint().getKubernetesClient().secrets().inAnyNamespace().list();
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ SecretList secretsList;
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ secretsList =
getEndpoint().getKubernetesClient().secrets().inAnyNamespace().list();
+ } else {
+ secretsList =
getEndpoint().getKubernetesClient().secrets().inNamespace(namespace).list();
+ }
+
prepareOutboundMessage(exchange, secretsList.getItems());
}
protected void doListSecretsByLabels(Exchange exchange) {
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_SECRETS_LABELS,
Map.class);
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
SecretList secretsList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- secretsList = getEndpoint()
- .getKubernetesClient()
- .secrets()
- .inNamespace(namespaceName)
- .withLabels(labels)
- .list();
+
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing Secrets by labels requires specifying labels");
+ throw new IllegalArgumentException("Listing Secrets by labels
requires specifying labels");
+ }
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ secretsList =
getEndpoint().getKubernetesClient().secrets().inAnyNamespace().withLabels(labels).list();
} else {
- secretsList = getEndpoint()
- .getKubernetesClient()
- .secrets()
- .inAnyNamespace()
- .withLabels(labels).list();
+ secretsList =
getEndpoint().getKubernetesClient().secrets().inNamespace(namespace).withLabels(labels).list();
}
prepareOutboundMessage(exchange, secretsList.getItems());
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
index 16fc183f8e5..79f0cb4d65c 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
@@ -85,29 +85,33 @@ public class KubernetesServiceAccountsProducer extends
DefaultProducer {
}
protected void doList(Exchange exchange) {
- ServiceAccountList saList =
getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace().list();
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ ServiceAccountList saList;
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ saList =
getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace().list();
+ } else {
+ saList =
getEndpoint().getKubernetesClient().serviceAccounts().inNamespace(namespace).list();
+ }
+
prepareOutboundMessage(exchange, saList.getItems());
}
protected void doListServiceAccountsByLabels(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels
=
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS,
Map.class);
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
ServiceAccountList saList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- saList = getEndpoint()
- .getKubernetesClient()
- .serviceAccounts()
- .inNamespace(namespaceName)
- .withLabels(labels)
- .list();
+
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing ServiceAccounts by labels requires specifying
labels");
+ throw new IllegalArgumentException("Listing ServiceAccounts by
labels requires specifying labels");
+ }
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ saList =
getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace().withLabels(labels).list();
} else {
- saList = getEndpoint()
- .getKubernetesClient()
- .serviceAccounts()
- .inAnyNamespace()
- .withLabels(labels)
- .list();
+ saList =
getEndpoint().getKubernetesClient().serviceAccounts().inNamespace(namespace).withLabels(labels).list();
}
prepareOutboundMessage(exchange, saList.getItems());
diff --git
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
index 01b52fd3f17..e78662b702a 100644
---
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
+++
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
@@ -87,34 +87,31 @@ public class KubernetesServicesProducer extends
DefaultProducer {
}
protected void doList(Exchange exchange) {
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
ServiceList servicesList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- servicesList =
getEndpoint().getKubernetesClient().services().inNamespace(namespaceName).list();
- } else {
+
+ if (ObjectHelper.isEmpty(namespace)) {
servicesList =
getEndpoint().getKubernetesClient().services().inAnyNamespace().list();
+ } else {
+ servicesList =
getEndpoint().getKubernetesClient().services().inNamespace(namespace).list();
}
prepareOutboundMessage(exchange, servicesList.getItems());
}
protected void doListServiceByLabels(Exchange exchange) {
+ String namespace =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
Map<String, String> labels =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS,
Map.class);
- String namespaceName =
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
String.class);
ServiceList servicesList;
- if (!ObjectHelper.isEmpty(namespaceName)) {
- servicesList = getEndpoint()
- .getKubernetesClient()
- .services()
- .inNamespace(namespaceName)
- .withLabels(labels)
- .list();
+
+ if (ObjectHelper.isEmpty(labels)) {
+ LOG.error("Listing Services by labels requires specifying labels");
+ throw new IllegalArgumentException("Listing Services by labels
requires specifying labels");
+ }
+
+ if (ObjectHelper.isEmpty(namespace)) {
+ servicesList =
getEndpoint().getKubernetesClient().services().inAnyNamespace().withLabels(labels).list();
} else {
- servicesList = getEndpoint()
- .getKubernetesClient()
- .services()
- .inAnyNamespace()
- .withLabels(labels)
- .list();
+ servicesList =
getEndpoint().getKubernetesClient().services().inNamespace(namespace).withLabels(labels).list();
}
prepareOutboundMessage(exchange, servicesList.getItems());
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
index 754be2d22fb..bb45c525675 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
@@ -80,13 +80,12 @@ public class KubernetesConfigMapsProducerTest extends
KubernetesTestSupport {
server.expect().withPath("/api/v1/namespaces/test/configmaps?labelSelector=" +
urlEncodedLabels)
.andReturn(200, new
ConfigMapListBuilder().addNewItem().and().addNewItem().and().build())
.once();
- Exchange ex = template.request("direct:listConfigMapsByLabels",
exchange -> {
-
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS,
labels);
- });
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS,
labels));
assertEquals(3, ex.getMessage().getBody(List.class).size());
- ex = template.request("direct:listConfigMapsByLabels", exchange -> {
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS,
labels);
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
@@ -224,7 +223,7 @@ public class KubernetesConfigMapsProducerTest extends
KubernetesTestSupport {
public void configure() {
from("direct:list")
.to("kubernetes-config-maps:///?kubernetesClient=#kubernetesClient&operation=listConfigMaps");
- from("direct:listConfigMapsByLabels")
+ from("direct:listByLabels")
.to("kubernetes-config-maps:///?kubernetesClient=#kubernetesClient&operation=listConfigMapsByLabels");
from("direct:getConfigMap")
.to("kubernetes-config-maps:///?kubernetesClient=#kubernetesClient&operation=getConfigMap");
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java
index 8a6266c3e1f..e12adb5712f 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java
@@ -16,13 +16,20 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder;
-import io.fabric8.kubernetes.api.model.batch.v1.*;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJob;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobListBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobSpecBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.JobBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.JobSpecBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.JobTemplateSpecBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
@@ -50,30 +57,50 @@ public class KubernetesCronJobProducerTest extends
KubernetesTestSupport {
@Test
void listTest() {
- server.expect().withPath("/apis/batch/v1/namespaces/test/cronjobs")
+ server.expect().withPath("/apis/batch/v1/cronjobs")
.andReturn(200, new
CronJobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
- List<?> result = template.requestBody("direct:listCronJob", "",
List.class);
-
+ server.expect().withPath("/apis/batch/v1/namespaces/test/cronjobs")
+ .andReturn(200, new
CronJobListBuilder().addNewItem().and().addNewItem().and().build())
+ .always();
+ List<?> result = template.requestBody("direct:list", "", List.class);
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
server.expect()
-
.withPath("/apis/batch/v1/namespaces/test/cronjobs?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
+ .withPath("/apis/batch/v1/cronjobs?labelSelector=" +
urlEncodedLabels)
.andReturn(200, new
CronJobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
- .once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
-
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS,
labels);
- });
+ .always();
+ server.expect()
+
.withPath("/apis/batch/v1/namespaces/test/cronjobs?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200, new
CronJobListBuilder().addNewItem().and().addNewItem().and().build())
+ .always();
- List<?> result = ex.getMessage().getBody(List.class);
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS,
labels));
+ List<?> result = ex.getMessage().getBody(List.class);
assertEquals(3, result.size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
+ });
+
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
@@ -188,7 +215,7 @@ public class KubernetesCronJobProducerTest extends
KubernetesTestSupport {
public void configure() {
// the kubernetes-client is autowired on the component
-
from("direct:listCronJob").to("kubernetes-cronjob:foo?operation=listCronJob");
+
from("direct:list").to("kubernetes-cronjob:foo?operation=listCronJob");
from("direct:listByLabels").to("kubernetes-cronjob:foo?operation=listCronJobByLabels");
from("direct:get").to("kubernetes-cronjob:foo?operation=getCronJob");
from("direct:create").to("kubernetes-cronjob:foo?operation=createCronJob");
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
index 8758b174dd4..5eea75d8578 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
@@ -52,30 +52,47 @@ public class KubernetesDeploymentsProducerTest extends
KubernetesTestSupport {
@Test
void listTest() {
+ server.expect().withPath("/apis/apps/v1/deployments")
+ .andReturn(200, new
DeploymentListBuilder().addNewItem().and().addNewItem().and().build()).once();
server.expect().withPath("/apis/apps/v1/namespaces/test/deployments")
.andReturn(200, new
DeploymentListBuilder().addNewItem().and().build()).once();
List<?> result = template.requestBody("direct:list", "", List.class);
+ assertEquals(2, result.size());
- assertEquals(1, result.size());
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(1, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
server.expect()
-
.withPath("/apis/apps/v1/namespaces/test/deployments?labelSelector="
- + toUrlEncoded("key1=value1,key2=value2"))
+ .withPath("/apis/apps/v1/deployments?labelSelector=" +
urlEncodedLabels)
.andReturn(200, new
DeploymentListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+ server.expect()
+
.withPath("/apis/apps/v1/namespaces/test/deployments?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200, new
DeploymentListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS,
labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
index 01e0cfaef29..2f8cf47d764 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.events.v1.Event;
import io.fabric8.kubernetes.api.model.events.v1.EventBuilder;
@@ -60,24 +60,34 @@ public class KubernetesEventsProducerTest extends
KubernetesTestSupport {
Exchange ex = template.request("direct:list",
exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
List<?> resultNamespace = ex.getMessage().getBody(List.class);
-
assertEquals(2, resultNamespace.size());
}
@Test
void listByLabelsTest() throws Exception {
-
server.expect().withPath("/apis/events.k8s.io/v1/events?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+
server.expect().withPath("/apis/events.k8s.io/v1/events?labelSelector=" +
urlEncodedLabels)
.andReturn(200, new
EventListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+
server.expect().withPath("/apis/events.k8s.io/v1/namespaces/test/events?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200, new
EventListBuilder().addNewItem().and().addNewItem().and().build()).once();
+
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS,
labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
index 4a924ff414f..fbce4aa348c 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
@@ -16,11 +16,10 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
-import io.fabric8.kubernetes.api.model.PodListBuilder;
import io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler;
import
io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscalerBuilder;
import
io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscalerListBuilder;
@@ -53,31 +52,51 @@ public class KubernetesHPAProducerTest extends
KubernetesTestSupport {
@Test
void listTest() {
+
server.expect().withPath("/apis/autoscaling/v1/horizontalpodautoscalers")
+ .andReturn(200,
+ new
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and()
+ .build())
+ .once();
server.expect().withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers")
- .andReturn(200, new
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().addNewItem()
- .and().build())
+ .andReturn(200, new
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().build())
.once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+
server.expect().withPath("/apis/autoscaling/v1/horizontalpodautoscalers?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200,
+ new
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and()
+ .build())
+ .once();
server.expect()
-
.withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers?labelSelector="
- + toUrlEncoded("key1=value1,key2=value2"))
- .andReturn(200, new
PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+
.withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200, new
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_HPA_LABELS, labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_HPA_LABELS, labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java
index 276cfca9870..c4c5103c40e 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.LabelSelector;
import io.fabric8.kubernetes.api.model.ObjectMeta;
@@ -55,28 +55,46 @@ public class KubernetesJobProducerTest extends
KubernetesTestSupport {
@Test
void listTest() {
- server.expect().withPath("/apis/batch/v1/namespaces/test/jobs")
+ server.expect().withPath("/apis/batch/v1/jobs")
.andReturn(200, new
JobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
+ server.expect().withPath("/apis/batch/v1/namespaces/test/jobs")
+ .andReturn(200, new
JobListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
-
server.expect().withPath("/apis/batch/v1/namespaces/test/jobs?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
- .andReturn(200, new
JobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+ server.expect().withPath("/apis/batch/v1/jobs?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200, new
JobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+ .once();
+
server.expect().withPath("/apis/batch/v1/namespaces/test/jobs?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200, new
JobListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
index ab59f95b3fc..90c354a578f 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
@@ -53,33 +53,49 @@ public class KubernetesPersistentVolumesClaimsProducerTest
extends KubernetesTes
@Test
void listTest() {
-
server.expect().withPath("/api/v1/namespaces/test/persistentvolumeclaims")
+ server.expect().withPath("/api/v1/persistentvolumeclaims")
.andReturn(200,
new
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
+
server.expect().withPath("/api/v1/namespaces/test/persistentvolumeclaims")
+ .andReturn(200, new
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
- server.expect()
-
.withPath("/api/v1/namespaces/test/persistentvolumeclaims?labelSelector="
- + toUrlEncoded("key1=value1,key2=value2"))
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+
server.expect().withPath("/api/v1/persistentvolumeclaims?labelSelector=" +
urlEncodedLabels)
.andReturn(200,
new
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
+
server.expect().withPath("/api/v1/namespaces/test/persistentvolumeclaims?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200, new
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
Exchange ex = template.request("direct:listByLabels", exchange -> {
-
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS,
labels);
});
- List<?> result = ex.getMessage().getBody(List.class);
- assertEquals(3, result.size());
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
+ });
+
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
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 b0c22cf3d66..9d38c38cff9 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
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
@@ -68,18 +68,30 @@ public class KubernetesPodsProducerTest extends
KubernetesTestSupport {
@Test
void listByLabelsTest() throws Exception {
- server.expect().withPath("/api/v1/pods?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
- .andReturn(200, new
PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+ server.expect().withPath("/api/v1/pods?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200, new
PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+ .once();
+ server.expect().withPath("/api/v1/namespaces/test/pods?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200, new
PodListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
index 5f007ce7528..cc90d92719c 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
@@ -16,10 +16,10 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.ReplicationController;
import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
@@ -59,27 +59,44 @@ public class KubernetesReplicationControllersProducerTest
extends KubernetesTest
.andReturn(200,
new
ReplicationControllerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
+
server.expect().withPath("/api/v1/namespaces/test/replicationcontrollers")
+ .andReturn(200, new
ReplicationControllerListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
-
server.expect().withPath("/api/v1/replicationcontrollers?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+
server.expect().withPath("/api/v1/replicationcontrollers?labelSelector=" +
urlEncodedLabels)
.andReturn(200,
new
ReplicationControllerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+
server.expect().withPath("/api/v1/namespaces/test/replicationcontrollers?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200, new
ReplicationControllerListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLERS_LABELS,
labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLERS_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
index 559060cba60..e2a4438e8e0 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
@@ -55,9 +55,15 @@ public class KubernetesResourcesQuotaProducerTest extends
KubernetesTestSupport
server.expect().withPath("/api/v1/resourcequotas")
.andReturn(200, new
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
+ server.expect().withPath("/api/v1/namespaces/test/resourcequotas")
+ .andReturn(200, new
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
@@ -70,16 +76,22 @@ public class KubernetesResourcesQuotaProducerTest extends
KubernetesTestSupport
.collect(Collectors.joining(",")));
server.expect().withPath("/api/v1/resourcequotas?labelSelector=" +
urlEncodedLabels)
- .andReturn(200,
- new
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+ .andReturn(200, new
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+ .once();
+
server.expect().withPath("/api/v1/namespaces/test/resourcequotas?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200, new
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().build())
.once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_RESOURCES_QUOTA_LABELS,
labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_RESOURCES_QUOTA_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
index a8afce45a87..32220c547f6 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.kubernetes.producer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.SecretBuilder;
@@ -54,26 +55,43 @@ public class KubernetesSecretsProducerTest extends
KubernetesTestSupport {
server.expect().withPath("/api/v1/secrets")
.andReturn(200, new
SecretListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
+ server.expect().withPath("/api/v1/namespaces/test/secrets")
+ .andReturn(200, new
SecretListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
- server.expect().withPath("/api/v1/secrets?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+ server.expect().withPath("/api/v1/secrets?labelSelector=" +
urlEncodedLabels)
.andReturn(200, new
SecretListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+
server.expect().withPath("/api/v1/namespaces/test/secrets?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200, new
SecretListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SECRETS_LABELS,
labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SECRETS_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
index db2bdbd43f2..13a757b41c3 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import io.fabric8.kubernetes.api.model.ServiceAccount;
import io.fabric8.kubernetes.api.model.ServiceAccountBuilder;
@@ -54,27 +54,44 @@ public class KubernetesServiceAccountsProducerTest extends
KubernetesTestSupport
.andReturn(200,
new
ServiceAccountListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
+ server.expect().withPath("/api/v1/namespaces/test/serviceaccounts")
+ .andReturn(200, new
ServiceAccountListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
- server.expect().withPath("/api/v1/serviceaccounts?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+ server.expect().withPath("/api/v1/serviceaccounts?labelSelector=" +
urlEncodedLabels)
.andReturn(200,
new
ServiceAccountListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
.once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+
server.expect().withPath("/api/v1/namespaces/test/serviceaccounts?labelSelector="
+ urlEncodedLabels)
+ .andReturn(200, new
ServiceAccountListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS,
labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
-
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
diff --git
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
index 111f5d3ec23..84d2c4d599b 100644
---
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
+++
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
@@ -16,11 +16,10 @@
*/
package org.apache.camel.component.kubernetes.producer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
-import io.fabric8.kubernetes.api.model.PodListBuilder;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
import io.fabric8.kubernetes.api.model.ServiceListBuilder;
@@ -55,26 +54,47 @@ public class KubernetesServicesProducerTest extends
KubernetesTestSupport {
@Test
void listTest() {
server.expect().withPath("/api/v1/services")
- .andReturn(200, new
ServiceListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+ .andReturn(200,
+ new
ServiceListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+ .once();
+ server.expect().withPath("/api/v1/namespaces/test/services")
+ .andReturn(200, new
ServiceListBuilder().addNewItem().and().addNewItem().and().build())
.once();
List<?> result = template.requestBody("direct:list", "", List.class);
-
assertEquals(3, result.size());
+
+ Exchange ex = template.request("direct:list",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test"));
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test
void listByLabelsTest() throws Exception {
- server.expect().withPath("/api/v1/services?labelSelector=" +
toUrlEncoded("key1=value1,key2=value2"))
- .andReturn(200, new
PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
- Exchange ex = template.request("direct:listByLabels", exchange -> {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
+ Map<String, String> labels = Map.of(
+ "key1", "value1",
+ "key2", "value2");
+
+ String urlEncodedLabels =
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" +
e.getValue())
+ .collect(Collectors.joining(",")));
+
+ server.expect().withPath("/api/v1/services?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200,
+ new
ServiceListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+ .once();
+
server.expect().withPath("/api/v1/namespaces/test/services?labelSelector=" +
urlEncodedLabels)
+ .andReturn(200, new
ServiceListBuilder().addNewItem().and().addNewItem().and().build())
+ .once();
+ Exchange ex = template.request("direct:listByLabels",
+ exchange ->
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS,
labels));
+
+ assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+ ex = template.request("direct:listByLabels", exchange -> {
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS,
labels);
+
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME,
"test");
});
- List<?> result = ex.getMessage().getBody(List.class);
- assertEquals(3, result.size());
+ assertEquals(2, ex.getMessage().getBody(List.class).size());
}
@Test