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
The following commit(s) were added to refs/heads/main by this push:
new ab580062 Optimize statuses
ab580062 is described below
commit ab580062686f2e536d61277321140ea012eaa75d
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Mon May 27 19:16:17 2024 -0400
Optimize statuses
---
.../karavan/status/ContainerStatusListener.java | 4 +-
.../apache/camel/karavan/status/StatusService.java | 68 ----------------------
.../karavan/status/docker/DockerStatusService.java | 2 +-
.../status/kubernetes/KubernetesStatusService.java | 21 +++++++
4 files changed, 24 insertions(+), 71 deletions(-)
diff --git
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/ContainerStatusListener.java
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/ContainerStatusListener.java
index 4e0b2d3d..301d7518 100644
---
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/ContainerStatusListener.java
+++
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/ContainerStatusListener.java
@@ -59,8 +59,8 @@ public class ContainerStatusListener {
}
@ConsumeEvent(value = CMD_CLEAN_STATUSES, blocking = true)
- void cleanContainersStatuses(JsonArray list) {
- List<ContainerStatus> statusesInDocker = list.stream().map(o ->
((JsonObject)o).mapTo(ContainerStatus.class)).toList();
+ void cleanContainersStatuses(String data) {
+ List<ContainerStatus> statusesInDocker =
dockerAPI.collectContainersStatuses();
List<String> namesInDocker =
statusesInDocker.stream().map(ContainerStatus::getContainerName).toList();
List<ContainerStatus> statusesInCache =
statusCache.getContainerStatuses(environment);
// clean deleted
diff --git
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/StatusService.java
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/StatusService.java
deleted file mode 100644
index 2a64f743..00000000
---
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/StatusService.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.karavan.status;
-
-import io.quarkus.runtime.ShutdownEvent;
-import io.quarkus.runtime.Startup;
-import io.quarkus.runtime.StartupEvent;
-import jakarta.enterprise.event.Observes;
-import jakarta.inject.Inject;
-import jakarta.inject.Singleton;
-import org.apache.camel.karavan.config.ConfigService;
-import org.apache.camel.karavan.status.docker.DockerAPI;
-import org.apache.camel.karavan.status.kubernetes.KubernetesStatusService;
-import org.eclipse.microprofile.health.HealthCheck;
-import org.eclipse.microprofile.health.HealthCheckResponse;
-import org.eclipse.microprofile.health.Liveness;
-import org.jboss.logging.Logger;
-
-import java.io.IOException;
-
-@Startup
-@Liveness
-@Singleton
-public class StatusService implements HealthCheck {
-
- private static final Logger LOGGER =
Logger.getLogger(StatusService.class.getName());
-
- @Inject
- KubernetesStatusService kubernetesStatusService;
-
- @Inject
- DockerAPI dockerAPI;
-
- @Override
- public HealthCheckResponse call() {
- return HealthCheckResponse.up("Karavan");
- }
-
- void onStart(@Observes StartupEvent ev) throws Exception {
- LOGGER.info("Status Listeners: starting...");
- if (ConfigService.inKubernetes()) {
- kubernetesStatusService.startInformers();
- }
- LOGGER.info("Status Listeners: started");
- }
-
- void onStop(@Observes ShutdownEvent ev) throws IOException {
- LOGGER.info("Status Listeners: stopping...");
- if (ConfigService.inKubernetes()) {
- kubernetesStatusService.stopInformers();
- }
- LOGGER.info("Status Listeners: stopped");
- }
-}
diff --git
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/docker/DockerStatusService.java
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/docker/DockerStatusService.java
index 8e98c839..b72461fd 100644
---
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/docker/DockerStatusService.java
+++
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/docker/DockerStatusService.java
@@ -53,7 +53,7 @@ public class DockerStatusService {
statusesInDocker.forEach(containerStatus -> {
eventBus.publish(CONTAINER_UPDATED,
JsonObject.mapFrom(containerStatus));
});
-// eventBus.publish(CMD_CLEAN_STATUSES, new
JsonArray(statusesInDocker));
+ eventBus.publish(CMD_CLEAN_STATUSES, "");
}
}
}
\ No newline at end of file
diff --git
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/kubernetes/KubernetesStatusService.java
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/kubernetes/KubernetesStatusService.java
index f339e12c..4a57bb25 100644
---
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/kubernetes/KubernetesStatusService.java
+++
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/kubernetes/KubernetesStatusService.java
@@ -21,9 +21,12 @@ import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
+import io.quarkus.runtime.ShutdownEvent;
+import io.quarkus.runtime.StartupEvent;
import io.quarkus.runtime.configuration.ProfileManager;
import io.vertx.mutiny.core.eventbus.EventBus;
import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
import jakarta.enterprise.inject.Default;
import jakarta.enterprise.inject.Produces;
import jakarta.inject.Inject;
@@ -34,6 +37,7 @@ import org.eclipse.microprofile.health.HealthCheckResponse;
import org.eclipse.microprofile.health.Readiness;
import org.jboss.logging.Logger;
+import java.io.IOException;
import java.util.*;
import static org.apache.camel.karavan.status.StatusConstants.*;
@@ -64,6 +68,23 @@ public class KubernetesStatusService implements HealthCheck {
List<SharedIndexInformer> informers = new ArrayList<>(INFORMERS);
+
+ void onStart(@Observes StartupEvent ev) throws Exception {
+ LOGGER.info("Status Listeners: starting...");
+ if (ConfigService.inKubernetes()) {
+ startInformers();
+ }
+ LOGGER.info("Status Listeners: started");
+ }
+
+ void onStop(@Observes ShutdownEvent ev) throws IOException {
+ LOGGER.info("Status Listeners: stopping...");
+ if (ConfigService.inKubernetes()) {
+ stopInformers();
+ }
+ LOGGER.info("Status Listeners: stopped");
+ }
+
public void startInformers() {
try {
stopInformers();