This is an automated email from the ASF dual-hosted git repository. marat pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
commit 16f2ac345c5b9f51900f617ef382552e083ce9f0 Author: Marat Gubaidullin <ma...@talismancloud.io> AuthorDate: Thu Oct 24 09:01:00 2024 -0400 Camel Statuses Improvements --- .../camel/karavan/listener/CamelReloadListener.java | 20 ++++++++++---------- .../camel/karavan/listener/CamelStatusListener.java | 12 +++++++----- .../karavan/scheduler/CamelStatusScheduler.java | 9 ++++----- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelReloadListener.java b/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelReloadListener.java index ebf16525..ec12d275 100644 --- a/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelReloadListener.java +++ b/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelReloadListener.java @@ -123,16 +123,16 @@ public class CamelReloadListener { } String getContainerAddressForReload(PodContainerStatus podContainerStatus) throws Exception { - if (ConfigService.inKubernetes()) { - return "http://" + podContainerStatus.getProjectId() + "." + kubernetesService.getNamespace(); - } else if (ConfigService.inDocker()) { - return "http://" + podContainerStatus.getProjectId() + ":8080"; - } else if (podContainerStatus.getPorts() != null && !podContainerStatus.getPorts().isEmpty()) { - Integer port = podContainerStatus.getPorts().get(0).getPublicPort(); - if (port != null) { - return "http://localhost:" + port; - } - } + if (ConfigService.inKubernetes()) { + return "http://" + podContainerStatus.getPodIP() + ":8080"; + } else if (ConfigService.inDocker()) { + return "http://" + podContainerStatus.getContainerName() + ":8080"; + } else if (podContainerStatus.getPorts() != null && !podContainerStatus.getPorts().isEmpty()) { + Integer port = podContainerStatus.getPorts().get(0).getPublicPort(); + if (port != null) { + return "http://localhost:" + port; + } + } throw new Exception("No port configured for project " + podContainerStatus.getContainerName()); } diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelStatusListener.java b/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelStatusListener.java index 354ee6bd..d50c8d5b 100644 --- a/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelStatusListener.java +++ b/karavan-app/src/main/java/org/apache/camel/karavan/listener/CamelStatusListener.java @@ -37,6 +37,7 @@ import org.jboss.logging.Logger; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.ExecutionException; import static org.apache.camel.karavan.KaravanEvents.CMD_COLLECT_CAMEL_STATUS; @@ -82,7 +83,7 @@ public class CamelStatusListener { CamelStatus cs = new CamelStatus(projectId, containerName, statuses, environment); karavanCache.saveCamelStatus(cs); } catch (Exception ex) { - LOGGER.error("collectCamelStatuses " + (ex.getCause() != null ? ex.getCause().getMessage() : ex.getMessage())); +// LOGGER.warn("collectCamelStatuses " + (ex.getCause() != null ? ex.getCause().getMessage() : ex.getMessage())); } } @@ -101,11 +102,13 @@ public class CamelStatusListener { } public String getCamelStatus(PodContainerStatus podContainerStatus, CamelStatusValue.Name statusName) throws Exception { - String url = getContainerAddressForStatus(podContainerStatus) + "/q/dev/" + statusName.name(); + var name = statusName.name(); + var path = "/q/dev/" + name + (Objects.equals(name, "trace") ? "?dump=true" : ""); + String url = getContainerAddressForStatus(podContainerStatus) + path; try { return getResult(url, 500); } catch (InterruptedException | ExecutionException ex) { - LOGGER.error("getCamelStatus " + (ex.getCause() != null ? ex.getCause().getMessage() : ex.getMessage())); +// LOGGER.warn("getCamelStatus " + (ex.getCause() != null ? ex.getCause().getMessage() : ex.getMessage())); } return null; } @@ -120,8 +123,7 @@ public class CamelStatusListener { return res.encodePrettily(); } } catch (Exception ex) { - LOGGER.error("getResult " + url); - LOGGER.error("getResult " + (ex.getCause() != null ? ex.getCause().getMessage() : ex.getMessage())); +// LOGGER.warn("getResult " + (ex.getCause() != null ? ex.getCause().getMessage() : ex.getMessage())); } return null; } diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/scheduler/CamelStatusScheduler.java b/karavan-app/src/main/java/org/apache/camel/karavan/scheduler/CamelStatusScheduler.java index 2f0b6ff6..552e91a9 100644 --- a/karavan-app/src/main/java/org/apache/camel/karavan/scheduler/CamelStatusScheduler.java +++ b/karavan-app/src/main/java/org/apache/camel/karavan/scheduler/CamelStatusScheduler.java @@ -24,13 +24,14 @@ import jakarta.inject.Inject; import org.apache.camel.karavan.KaravanCache; import org.apache.camel.karavan.KaravanConstants; import org.apache.camel.karavan.model.CamelStatusRequest; -import org.apache.camel.karavan.model.PodContainerStatus; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.jboss.logging.Logger; import java.util.Map; import java.util.Objects; +import static org.apache.camel.karavan.KaravanConstants.CAMEL_PREFIX; +import static org.apache.camel.karavan.KaravanConstants.LABEL_KUBERNETES_RUNTIME; import static org.apache.camel.karavan.KaravanEvents.CMD_COLLECT_CAMEL_STATUS; @ApplicationScoped @@ -51,10 +52,8 @@ public class CamelStatusScheduler { public void collectCamelStatuses() { LOGGER.debug("Collect Camel Statuses"); karavanCache.getPodContainerStatuses(environment).stream() - .filter(cs -> - cs.getType() == PodContainerStatus.ContainerType.project - || cs.getType() == PodContainerStatus.ContainerType.devmode - ).filter(cs -> Objects.equals(cs.getCamelRuntime(), KaravanConstants.CamelRuntime.CAMEL_MAIN.getValue())) + .filter(cs -> Objects.equals(cs.getLabels().get(LABEL_KUBERNETES_RUNTIME), CAMEL_PREFIX)) + .filter(cs -> Objects.equals(cs.getCamelRuntime(), KaravanConstants.CamelRuntime.CAMEL_MAIN.getValue())) .forEach(cs -> { CamelStatusRequest csr = new CamelStatusRequest(cs.getProjectId(), cs.getContainerName()); eventBus.publish(CMD_COLLECT_CAMEL_STATUS,