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 2018/07/09 10:00:34 UTC
[camel] 02/04: CAMEL-12583 - Fixed CS
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 2dbdfbfdb6af90f27601dca7b248baf82df7f001
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Jul 9 11:25:30 2018 +0200
CAMEL-12583 - Fixed CS
---
.../kubernetes/consumer/common/HPAEvent.java | 36 ++--
.../kubernetes/hpa/KubernetesHPAComponent.java | 2 +-
.../kubernetes/hpa/KubernetesHPAConsumer.java | 217 ++++++++++-----------
.../kubernetes/hpa/KubernetesHPAProducer.java | 143 ++++++--------
.../producer/KubernetesHPAProducerTest.java | 78 ++++----
.../producer/KubernetesPodsProducerTest.java | 195 +++++++++---------
6 files changed, 317 insertions(+), 354 deletions(-)
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/HPAEvent.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/HPAEvent.java
index efa403f..d821b3e 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/HPAEvent.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/consumer/common/HPAEvent.java
@@ -20,29 +20,29 @@ import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
import io.fabric8.kubernetes.client.Watcher.Action;
public class HPAEvent {
- private io.fabric8.kubernetes.client.Watcher.Action action;
+ private io.fabric8.kubernetes.client.Watcher.Action action;
- private HorizontalPodAutoscaler hpa;
+ private HorizontalPodAutoscaler hpa;
- public HPAEvent(Action action, HorizontalPodAutoscaler hpa) {
- this.action = action;
- this.hpa = hpa;
- }
+ public HPAEvent(Action action, HorizontalPodAutoscaler hpa) {
+ this.action = action;
+ this.hpa = hpa;
+ }
- public io.fabric8.kubernetes.client.Watcher.Action getAction() {
- return action;
- }
+ public io.fabric8.kubernetes.client.Watcher.Action getAction() {
+ return action;
+ }
- public void setAction(io.fabric8.kubernetes.client.Watcher.Action action) {
- this.action = action;
- }
+ public void setAction(io.fabric8.kubernetes.client.Watcher.Action action) {
+ this.action = action;
+ }
- public HorizontalPodAutoscaler getHpa() {
- return hpa;
- }
+ public HorizontalPodAutoscaler getHpa() {
+ return hpa;
+ }
- public void setHpa(HorizontalPodAutoscaler hpa) {
- this.hpa = hpa;
- }
+ public void setHpa(HorizontalPodAutoscaler hpa) {
+ this.hpa = hpa;
+ }
}
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAComponent.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAComponent.java
index d498551..7410bb2 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAComponent.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAComponent.java
@@ -22,7 +22,7 @@ import org.apache.camel.component.kubernetes.KubernetesConfiguration;
public class KubernetesHPAComponent extends AbstractKubernetesComponent {
protected KubernetesHPAEndpoint doCreateEndpoint(String uri, String remaining, KubernetesConfiguration config) throws Exception {
- KubernetesHPAEndpoint endpoint = new KubernetesHPAEndpoint(uri, this, config);
+ KubernetesHPAEndpoint endpoint = new KubernetesHPAEndpoint(uri, this, config);
return endpoint;
}
}
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAConsumer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAConsumer.java
index a3ae2d2..986745b 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAConsumer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAConsumer.java
@@ -18,6 +18,15 @@ package org.apache.camel.component.kubernetes.hpa;
import java.util.concurrent.ExecutorService;
+import io.fabric8.kubernetes.api.model.DoneableHorizontalPodAutoscaler;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerList;
+import io.fabric8.kubernetes.client.KubernetesClientException;
+import io.fabric8.kubernetes.client.Watch;
+import io.fabric8.kubernetes.client.Watcher;
+import io.fabric8.kubernetes.client.dsl.MixedOperation;
+import io.fabric8.kubernetes.client.dsl.Resource;
+
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
@@ -28,116 +37,104 @@ import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import io.fabric8.kubernetes.api.model.DoneableHorizontalPodAutoscaler;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerList;
-import io.fabric8.kubernetes.client.KubernetesClientException;
-import io.fabric8.kubernetes.client.Watch;
-import io.fabric8.kubernetes.client.Watcher;
-import io.fabric8.kubernetes.client.dsl.MixedOperation;
-import io.fabric8.kubernetes.client.dsl.Resource;
-
public class KubernetesHPAConsumer extends DefaultConsumer {
- private static final Logger LOG = LoggerFactory.getLogger(KubernetesHPAConsumer.class);
-
- private final Processor processor;
- private ExecutorService executor;
- private HpaConsumerTask hpasWatcher;
-
- public KubernetesHPAConsumer(AbstractKubernetesEndpoint endpoint, Processor processor) {
- super(endpoint, processor);
- this.processor = processor;
- }
-
- @Override
- public AbstractKubernetesEndpoint getEndpoint() {
- return (AbstractKubernetesEndpoint) super.getEndpoint();
- }
-
- @Override
- protected void doStart() throws Exception {
- super.doStart();
- executor = getEndpoint().createExecutor();
-
- hpasWatcher = new HpaConsumerTask();
- executor.submit(hpasWatcher);
- }
-
- @Override
- protected void doStop() throws Exception {
- super.doStop();
-
- LOG.debug("Stopping Kubernetes HPA Consumer");
- if (executor != null) {
- if (getEndpoint() != null && getEndpoint().getCamelContext() != null) {
- if (hpasWatcher != null) {
- hpasWatcher.getWatch().close();
- }
- getEndpoint().getCamelContext().getExecutorServiceManager().shutdownNow(executor);
- } else {
- if (hpasWatcher != null) {
- hpasWatcher.getWatch().close();
- }
- executor.shutdownNow();
- }
- }
- executor = null;
- }
-
- class HpaConsumerTask implements Runnable {
-
- private Watch watch;
-
- @Override
- public void run() {
- MixedOperation<HorizontalPodAutoscaler, HorizontalPodAutoscalerList, DoneableHorizontalPodAutoscaler, Resource<HorizontalPodAutoscaler, DoneableHorizontalPodAutoscaler>> w = getEndpoint()
- .getKubernetesClient().autoscaling().horizontalPodAutoscalers();
- if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getNamespace())) {
- w.inNamespace(getEndpoint().getKubernetesConfiguration().getNamespace());
- }
- if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelKey())
- && ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelValue())) {
- w.withLabel(getEndpoint().getKubernetesConfiguration().getLabelKey(),
- getEndpoint().getKubernetesConfiguration().getLabelValue());
- }
- if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getResourceName())) {
- w.withName(getEndpoint().getKubernetesConfiguration().getResourceName());
- }
- watch = w.watch(new Watcher<HorizontalPodAutoscaler>() {
-
- @Override
- public void eventReceived(io.fabric8.kubernetes.client.Watcher.Action action,
- HorizontalPodAutoscaler resource) {
- HPAEvent hpae = new HPAEvent(action, resource);
- Exchange exchange = getEndpoint().createExchange();
- exchange.getIn().setBody(hpae.getHpa());
- exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION, hpae.getAction());
- exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_TIMESTAMP,
- System.currentTimeMillis());
- try {
- processor.process(exchange);
- } catch (Exception e) {
- getExceptionHandler().handleException("Error during processing", exchange, e);
- }
- }
-
- @Override
- public void onClose(KubernetesClientException cause) {
- if (cause != null) {
- LOG.error(cause.getMessage(), cause);
- }
-
- }
- });
- }
-
- public Watch getWatch() {
- return watch;
- }
-
- public void setWatch(Watch watch) {
- this.watch = watch;
- }
- }
+ private static final Logger LOG = LoggerFactory.getLogger(KubernetesHPAConsumer.class);
+
+ private final Processor processor;
+ private ExecutorService executor;
+ private HpaConsumerTask hpasWatcher;
+
+ public KubernetesHPAConsumer(AbstractKubernetesEndpoint endpoint, Processor processor) {
+ super(endpoint, processor);
+ this.processor = processor;
+ }
+
+ @Override
+ public AbstractKubernetesEndpoint getEndpoint() {
+ return (AbstractKubernetesEndpoint)super.getEndpoint();
+ }
+
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+ executor = getEndpoint().createExecutor();
+
+ hpasWatcher = new HpaConsumerTask();
+ executor.submit(hpasWatcher);
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ super.doStop();
+
+ LOG.debug("Stopping Kubernetes HPA Consumer");
+ if (executor != null) {
+ if (getEndpoint() != null && getEndpoint().getCamelContext() != null) {
+ if (hpasWatcher != null) {
+ hpasWatcher.getWatch().close();
+ }
+ getEndpoint().getCamelContext().getExecutorServiceManager().shutdownNow(executor);
+ } else {
+ if (hpasWatcher != null) {
+ hpasWatcher.getWatch().close();
+ }
+ executor.shutdownNow();
+ }
+ }
+ executor = null;
+ }
+
+ class HpaConsumerTask implements Runnable {
+
+ private Watch watch;
+
+ @Override
+ public void run() {
+ MixedOperation<HorizontalPodAutoscaler, HorizontalPodAutoscalerList, DoneableHorizontalPodAutoscaler, Resource<HorizontalPodAutoscaler, DoneableHorizontalPodAutoscaler>> w = getEndpoint()
+ .getKubernetesClient().autoscaling().horizontalPodAutoscalers();
+ if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getNamespace())) {
+ w.inNamespace(getEndpoint().getKubernetesConfiguration().getNamespace());
+ }
+ if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelKey())
+ && ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelValue())) {
+ w.withLabel(getEndpoint().getKubernetesConfiguration().getLabelKey(), getEndpoint().getKubernetesConfiguration().getLabelValue());
+ }
+ if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getResourceName())) {
+ w.withName(getEndpoint().getKubernetesConfiguration().getResourceName());
+ }
+ watch = w.watch(new Watcher<HorizontalPodAutoscaler>() {
+
+ @Override
+ public void eventReceived(io.fabric8.kubernetes.client.Watcher.Action action, HorizontalPodAutoscaler resource) {
+ HPAEvent hpae = new HPAEvent(action, resource);
+ Exchange exchange = getEndpoint().createExchange();
+ exchange.getIn().setBody(hpae.getHpa());
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION, hpae.getAction());
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENT_TIMESTAMP, System.currentTimeMillis());
+ try {
+ processor.process(exchange);
+ } catch (Exception e) {
+ getExceptionHandler().handleException("Error during processing", exchange, e);
+ }
+ }
+
+ @Override
+ public void onClose(KubernetesClientException cause) {
+ if (cause != null) {
+ LOG.error(cause.getMessage(), cause);
+ }
+
+ }
+ });
+ }
+
+ public Watch getWatch() {
+ return watch;
+ }
+
+ public void setWatch(Watch watch) {
+ this.watch = watch;
+ }
+ }
}
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 9924844..8e22568 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
@@ -18,6 +18,14 @@ package org.apache.camel.component.kubernetes.hpa;
import java.util.Map;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerBuilder;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerList;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerSpec;
+import io.fabric8.kubernetes.client.Watch;
+import io.fabric8.kubernetes.client.Watcher;
+import io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable;
+
import org.apache.camel.Exchange;
import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
import org.apache.camel.component.kubernetes.KubernetesConstants;
@@ -28,18 +36,9 @@ import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerBuilder;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerList;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerSpec;
-import io.fabric8.kubernetes.client.Watch;
-import io.fabric8.kubernetes.client.Watcher;
-import io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable;
-
public class KubernetesHPAProducer extends DefaultProducer {
- private static final Logger LOG = LoggerFactory
- .getLogger(KubernetesHPAProducer.class);
+ private static final Logger LOG = LoggerFactory.getLogger(KubernetesHPAProducer.class);
public KubernetesHPAProducer(AbstractKubernetesEndpoint endpoint) {
super(endpoint);
@@ -47,20 +46,17 @@ public class KubernetesHPAProducer extends DefaultProducer {
@Override
public AbstractKubernetesEndpoint getEndpoint() {
- return (AbstractKubernetesEndpoint) super.getEndpoint();
+ return (AbstractKubernetesEndpoint)super.getEndpoint();
}
@Override
public void process(Exchange exchange) throws Exception {
String operation;
- if (ObjectHelper.isEmpty(getEndpoint().getKubernetesConfiguration()
- .getOperation())) {
- operation = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_OPERATION, String.class);
+ if (ObjectHelper.isEmpty(getEndpoint().getKubernetesConfiguration().getOperation())) {
+ operation = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_OPERATION, String.class);
} else {
- operation = getEndpoint().getKubernetesConfiguration()
- .getOperation();
+ operation = getEndpoint().getKubernetesConfiguration().getOperation();
}
switch (operation) {
@@ -68,134 +64,109 @@ public class KubernetesHPAProducer extends DefaultProducer {
case KubernetesOperations.LIST_HPA:
doList(exchange, operation);
break;
-
+
case KubernetesOperations.LIST_HPA_BY_LABELS_OPERATION:
- doListHPAByLabel(exchange, operation);
+ doListHPAByLabel(exchange, operation);
break;
case KubernetesOperations.GET_HPA_OPERATION:
- doGetHPA(exchange, operation);
+ doGetHPA(exchange, operation);
break;
case KubernetesOperations.CREATE_HPA_OPERATION:
- doCreateHPA(exchange, operation);
+ doCreateHPA(exchange, operation);
break;
-
+
case KubernetesOperations.DELETE_HPA_OPERATION:
- doDeleteHPA(exchange, operation);
+ doDeleteHPA(exchange, operation);
break;
-
+
default:
- throw new IllegalArgumentException("Unsupported operation "
- + operation);
+ throw new IllegalArgumentException("Unsupported operation " + operation);
}
}
protected void doList(Exchange exchange, String operation) throws Exception {
HorizontalPodAutoscalerList hpaList = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers().list();
-
+
MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
exchange.getOut().setBody(hpaList.getItems());
}
protected void doListHPAByLabel(Exchange exchange, String operation) {
- Map<String, String> labels = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_PODS_LABELS, Map.class);
+ Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, Map.class);
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");
+ throw new IllegalArgumentException("Get HPA by labels require specify a labels set");
}
-
- FilterWatchListMultiDeletable<HorizontalPodAutoscaler, HorizontalPodAutoscalerList, Boolean, Watch, Watcher<HorizontalPodAutoscaler>> hpas = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers();
+
+ FilterWatchListMultiDeletable<HorizontalPodAutoscaler, HorizontalPodAutoscalerList, Boolean, Watch, Watcher<HorizontalPodAutoscaler>> hpas = getEndpoint()
+ .getKubernetesClient().autoscaling().horizontalPodAutoscalers();
for (Map.Entry<String, String> entry : labels.entrySet()) {
- hpas.withLabel(entry.getKey(), entry.getValue());
+ hpas.withLabel(entry.getKey(), entry.getValue());
}
HorizontalPodAutoscalerList hpaList = hpas.list();
-
+
MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
exchange.getOut().setBody(hpaList.getItems());
}
-
- protected void doGetHPA(Exchange exchange, String operation)
- throws Exception {
+
+ protected void doGetHPA(Exchange exchange, String operation) throws Exception {
HorizontalPodAutoscaler hpa = null;
- String podName = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_HPA_NAME, String.class);
- String namespaceName = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+ String podName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_NAME, String.class);
+ String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
if (ObjectHelper.isEmpty(podName)) {
LOG.error("Get a specific hpa require specify an hpa name");
- throw new IllegalArgumentException(
- "Get a specific hpa require specify an hpa name");
+ throw new IllegalArgumentException("Get a specific hpa require specify an hpa name");
}
if (ObjectHelper.isEmpty(namespaceName)) {
LOG.error("Get a specific hpa require specify a namespace name");
- throw new IllegalArgumentException(
- "Get a specific hpa require specify a namespace name");
+ throw new IllegalArgumentException("Get a specific hpa require specify a namespace name");
}
- hpa = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers()
- .inNamespace(namespaceName).withName(podName).get();
-
+ hpa = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers().inNamespace(namespaceName).withName(podName).get();
+
MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
exchange.getOut().setBody(hpa);
}
-
- protected void doCreateHPA(Exchange exchange, String operation)
- throws Exception {
+
+ protected void doCreateHPA(Exchange exchange, String operation) throws Exception {
HorizontalPodAutoscaler hpa = null;
- String hpaName = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_HPA_NAME, String.class);
- String namespaceName = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
- HorizontalPodAutoscalerSpec hpaSpec = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_HPA_SPEC, HorizontalPodAutoscalerSpec.class);
+ String hpaName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_NAME, String.class);
+ String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+ HorizontalPodAutoscalerSpec hpaSpec = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_SPEC, HorizontalPodAutoscalerSpec.class);
if (ObjectHelper.isEmpty(hpaName)) {
LOG.error("Create a specific hpa require specify a hpa name");
- throw new IllegalArgumentException(
- "Create a specific hpa require specify a hpa name");
+ throw new IllegalArgumentException("Create a specific hpa require specify a hpa name");
}
if (ObjectHelper.isEmpty(namespaceName)) {
LOG.error("Create a specific hpa require specify a namespace name");
- throw new IllegalArgumentException(
- "Create a specific hpa require specify a namespace name");
+ throw new IllegalArgumentException("Create a specific hpa require specify a namespace name");
}
if (ObjectHelper.isEmpty(hpaSpec)) {
LOG.error("Create a specific hpa require specify a hpa spec bean");
- throw new IllegalArgumentException(
- "Create a specific hpa require specify a hpa spec bean");
+ throw new IllegalArgumentException("Create a specific hpa require specify a hpa spec bean");
}
- Map<String, String> labels = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_PODS_LABELS, Map.class);
- HorizontalPodAutoscaler hpaCreating = new HorizontalPodAutoscalerBuilder().withNewMetadata()
- .withName(hpaName).withLabels(labels).endMetadata()
- .withSpec(hpaSpec).build();
- hpa = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers()
- .inNamespace(namespaceName).create(hpaCreating);
-
+ Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, Map.class);
+ HorizontalPodAutoscaler hpaCreating = new HorizontalPodAutoscalerBuilder().withNewMetadata().withName(hpaName).withLabels(labels).endMetadata().withSpec(hpaSpec).build();
+ hpa = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers().inNamespace(namespaceName).create(hpaCreating);
+
MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
exchange.getOut().setBody(hpa);
}
-
- protected void doDeleteHPA(Exchange exchange, String operation)
- throws Exception {
- String hpaName = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_HPA_NAME, String.class);
- String namespaceName = exchange.getIn().getHeader(
- KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+
+ protected void doDeleteHPA(Exchange exchange, String operation) throws Exception {
+ String hpaName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_NAME, String.class);
+ String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
if (ObjectHelper.isEmpty(hpaName)) {
LOG.error("Delete a specific hpa require specify a hpa name");
- throw new IllegalArgumentException(
- "Delete a specific hpa require specify a hpa name");
+ throw new IllegalArgumentException("Delete a specific hpa require specify a hpa name");
}
if (ObjectHelper.isEmpty(namespaceName)) {
LOG.error("Delete a specific hpa require specify a namespace name");
- throw new IllegalArgumentException(
- "Delete a specific hpa require specify a namespace name");
+ throw new IllegalArgumentException("Delete a specific hpa require specify a namespace name");
}
- boolean hpaDeleted = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers()
- .inNamespace(namespaceName).withName(hpaName).delete();
-
+ boolean hpaDeleted = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers().inNamespace(namespaceName).withName(hpaName).delete();
+
MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
exchange.getOut().setBody(hpaDeleted);
}
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 5f5e0ed..2c30b6d 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
@@ -20,6 +20,12 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerBuilder;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerListBuilder;
+import io.fabric8.kubernetes.api.model.PodListBuilder;
+import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
+
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
@@ -29,33 +35,27 @@ import org.apache.camel.impl.JndiRegistry;
import org.junit.Rule;
import org.junit.Test;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscaler;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerBuilder;
-import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerListBuilder;
-import io.fabric8.kubernetes.api.model.PodListBuilder;
-import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
-
public class KubernetesHPAProducerTest extends KubernetesTestSupport {
- @Rule
- public KubernetesServer server = new KubernetesServer();
-
- @Override
- protected JndiRegistry createRegistry() throws Exception {
- JndiRegistry registry = super.createRegistry();
- registry.bind("kubernetesClient", server.getClient());
- return registry;
- }
-
- @Test
- public void listTest() throws Exception {
- server.expect().withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers").andReturn(200, new HorizontalPodAutoscalerListBuilder()
- .addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
- List<HorizontalPodAutoscaler> result = template.requestBody("direct:list", "", List.class);
-
- assertEquals(3, result.size());
- }
-
+ @Rule
+ public KubernetesServer server = new KubernetesServer();
+
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ JndiRegistry registry = super.createRegistry();
+ registry.bind("kubernetesClient", server.getClient());
+ return registry;
+ }
+
+ @Test
+ public void listTest() throws Exception {
+ server.expect().withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers")
+ .andReturn(200, new HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
+ List<HorizontalPodAutoscaler> result = template.requestBody("direct:list", "", List.class);
+
+ assertEquals(3, result.size());
+ }
+
@Test
public void listByLabelsTest() throws Exception {
server.expect().withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers?labelSelector=" + toUrlEncoded("key1=value1,key2=value2"))
@@ -75,7 +75,7 @@ public class KubernetesHPAProducerTest extends KubernetesTestSupport {
assertEquals(3, result.size());
}
-
+
@Test
public void getHPATest() throws Exception {
HorizontalPodAutoscaler hpa1 = new HorizontalPodAutoscalerBuilder().withNewMetadata().withName("hpa1").withNamespace("test").and().build();
@@ -96,7 +96,7 @@ public class KubernetesHPAProducerTest extends KubernetesTestSupport {
assertEquals("hpa1", result.getMetadata().getName());
}
-
+
@Test
public void deleteHPATest() throws Exception {
HorizontalPodAutoscaler hpa1 = new HorizontalPodAutoscalerBuilder().withNewMetadata().withName("hpa1").withNamespace("test").and().build();
@@ -116,16 +116,16 @@ public class KubernetesHPAProducerTest extends KubernetesTestSupport {
assertTrue(podDeleted);
}
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:list").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=listHPA");
- from("direct:listByLabels").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=listHPAByLabels");
- from("direct:getHPA").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=getHPA");
- from("direct:deleteHPA").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=deleteHPA");
- }
- };
- }
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:list").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=listHPA");
+ from("direct:listByLabels").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=listHPAByLabels");
+ from("direct:getHPA").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=getHPA");
+ from("direct:deleteHPA").to("kubernetes-hpa:///?kubernetesClient=#kubernetesClient&operation=deleteHPA");
+ }
+ };
+ }
}
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 fbbd180..fc727ad 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
@@ -20,6 +20,11 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.PodBuilder;
+import io.fabric8.kubernetes.api.model.PodListBuilder;
+import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
+
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
@@ -29,106 +34,96 @@ import org.apache.camel.impl.JndiRegistry;
import org.junit.Rule;
import org.junit.Test;
-import io.fabric8.kubernetes.api.model.Pod;
-import io.fabric8.kubernetes.api.model.PodBuilder;
-import io.fabric8.kubernetes.api.model.PodListBuilder;
-import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
-
public class KubernetesPodsProducerTest extends KubernetesTestSupport {
- @Rule
- public KubernetesServer server = new KubernetesServer();
-
- @Override
- protected JndiRegistry createRegistry() throws Exception {
- JndiRegistry registry = super.createRegistry();
- registry.bind("kubernetesClient", server.getClient());
- return registry;
- }
-
- @Test
- public void listTest() throws Exception {
- server.expect().withPath("/api/v1/pods")
- .andReturn(200, new PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
- .once();
- List<Pod> result = template.requestBody("direct:list", "", List.class);
-
- assertEquals(3, result.size());
- }
-
- @Test
- public 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", new Processor() {
-
- @Override
- public void process(Exchange exchange) throws Exception {
- Map<String, String> labels = new HashMap<>();
- labels.put("key1", "value1");
- labels.put("key2", "value2");
- exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, labels);
- }
- });
-
- List<Pod> result = ex.getOut().getBody(List.class);
-
- assertEquals(3, result.size());
- }
-
- @Test
- public void getPodTest() throws Exception {
- Pod pod1 = new PodBuilder().withNewMetadata().withName("pod1").withNamespace("test").and().build();
- Pod pod2 = new PodBuilder().withNewMetadata().withName("pod2").withNamespace("ns1").and().build();
-
- server.expect().withPath("/api/v1/namespaces/test/pods/pod1").andReturn(200, pod1).once();
- server.expect().withPath("/api/v1/namespaces/ns1/pods/pod2").andReturn(200, pod2).once();
- Exchange ex = template.request("direct:getPod", new Processor() {
-
- @Override
- public void process(Exchange exchange) throws Exception {
- exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
- exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_POD_NAME, "pod1");
- }
- });
-
- Pod result = ex.getOut().getBody(Pod.class);
-
- assertEquals("pod1", result.getMetadata().getName());
- }
-
- @Test
- public void deletePod() throws Exception {
- Pod pod1 = new PodBuilder().withNewMetadata().withName("pod1").withNamespace("test").and().build();
- server.expect().withPath("/api/v1/namespaces/test/pods/pod1").andReturn(200, pod1).once();
-
- Exchange ex = template.request("direct:deletePod", new Processor() {
-
- @Override
- public void process(Exchange exchange) throws Exception {
- exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
- exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_POD_NAME, "pod1");
- }
- });
-
- boolean podDeleted = ex.getOut().getBody(Boolean.class);
-
- assertTrue(podDeleted);
- }
-
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:list").to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods");
- from("direct:listByLabels")
- .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPodsByLabels");
- from("direct:getPod").to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=getPod");
- from("direct:deletePod")
- .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=deletePod");
- }
- };
- }
+ @Rule
+ public KubernetesServer server = new KubernetesServer();
+
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ JndiRegistry registry = super.createRegistry();
+ registry.bind("kubernetesClient", server.getClient());
+ return registry;
+ }
+
+ @Test
+ public void listTest() throws Exception {
+ server.expect().withPath("/api/v1/pods").andReturn(200, new PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
+ List<Pod> result = template.requestBody("direct:list", "", List.class);
+
+ assertEquals(3, result.size());
+ }
+
+ @Test
+ public 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", new Processor() {
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ Map<String, String> labels = new HashMap<>();
+ labels.put("key1", "value1");
+ labels.put("key2", "value2");
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, labels);
+ }
+ });
+
+ List<Pod> result = ex.getOut().getBody(List.class);
+
+ assertEquals(3, result.size());
+ }
+
+ @Test
+ public void getPodTest() throws Exception {
+ Pod pod1 = new PodBuilder().withNewMetadata().withName("pod1").withNamespace("test").and().build();
+ Pod pod2 = new PodBuilder().withNewMetadata().withName("pod2").withNamespace("ns1").and().build();
+
+ server.expect().withPath("/api/v1/namespaces/test/pods/pod1").andReturn(200, pod1).once();
+ server.expect().withPath("/api/v1/namespaces/ns1/pods/pod2").andReturn(200, pod2).once();
+ Exchange ex = template.request("direct:getPod", new Processor() {
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_POD_NAME, "pod1");
+ }
+ });
+
+ Pod result = ex.getOut().getBody(Pod.class);
+
+ assertEquals("pod1", result.getMetadata().getName());
+ }
+
+ @Test
+ public void deletePod() throws Exception {
+ Pod pod1 = new PodBuilder().withNewMetadata().withName("pod1").withNamespace("test").and().build();
+ server.expect().withPath("/api/v1/namespaces/test/pods/pod1").andReturn(200, pod1).once();
+
+ Exchange ex = template.request("direct:deletePod", new Processor() {
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+ exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_POD_NAME, "pod1");
+ }
+ });
+
+ boolean podDeleted = ex.getOut().getBody(Boolean.class);
+
+ assertTrue(podDeleted);
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:list").to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods");
+ from("direct:listByLabels").to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPodsByLabels");
+ from("direct:getPod").to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=getPod");
+ from("direct:deletePod").to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=deletePod");
+ }
+ };
+ }
}