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 <ma...@talismancloud.io>
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();

Reply via email to