You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2023/07/14 00:49:40 UTC

[camel-karavan] branch main updated: Infrasructure config for logs #817

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 e8c60edc Infrasructure config for logs #817
e8c60edc is described below

commit e8c60edc1f3e02336c8a447ab22f3ec9fb72ea0f
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Thu Jul 13 20:49:31 2023 -0400

    Infrasructure config for logs #817
---
 .../java/org/apache/camel/karavan/api/DevModeResource.java   |  4 ++--
 .../java/org/apache/camel/karavan/api/LogWatchResource.java  |  2 +-
 .../org/apache/camel/karavan/bashi/docker/DockerService.java | 12 +++++++-----
 .../apache/camel/karavan/datagrid/model/DevModeCommand.java  |  6 +++++-
 .../java/org/apache/camel/karavan/datagrid/DataGridTest.java |  8 ++++----
 5 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
index d0681bf4..403ad264 100644
--- a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
+++ b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
@@ -57,7 +57,7 @@ public class DevModeResource {
         PodStatus status = datagridService.getDevModePodStatuses(runnerName, environment);
         if (status == null) {
             datagridService.saveDevModeStatus(new DevModeStatus(project.getProjectId(), null, null, false));
-            datagridService.sendDevModeCommand(DevModeCommand.createDevModeCommand(DevModeCommandName.RUN, project.getProjectId()));
+            datagridService.sendDevModeCommand(DevModeCommand.createForProject(DevModeCommandName.RUN, project.getProjectId()));
             return Response.ok(runnerName).build();
         }
         return Response.notModified().build();
@@ -83,7 +83,7 @@ public class DevModeResource {
     @Consumes(MediaType.APPLICATION_JSON)
     @Path("/{projectId}/{deletePVC}")
     public Response deleteRunner(@PathParam("projectId") String projectId, @PathParam("deletePVC") boolean deletePVC) {
-        datagridService.sendDevModeCommand(DevModeCommand.createDevModeCommand(DevModeCommandName.DELETE, projectId));
+        datagridService.sendDevModeCommand(DevModeCommand.createForProject(DevModeCommandName.DELETE, projectId));
         datagridService.deleteDevModeStatus(projectId);
         return Response.accepted().build();
     }
diff --git a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/LogWatchResource.java b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/LogWatchResource.java
index 0fece15e..4df1807a 100644
--- a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/LogWatchResource.java
+++ b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/LogWatchResource.java
@@ -66,7 +66,7 @@ public class LogWatchResource {
             if (kubernetesService.inKubernetes()) {
                 getKubernetesLogs(type, name, eventSink, sse);
             } else {
-                datagridService.sendDevModeCommand(DevModeCommand.createDevModeCommand(DevModeCommandName.LOG, name));
+                datagridService.sendDevModeCommand(DevModeCommand.createForContainer(DevModeCommandName.LOG, name));
             }
         });
     }
diff --git a/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerService.java b/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerService.java
index 7c58465d..b14394a0 100644
--- a/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerService.java
+++ b/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerService.java
@@ -136,7 +136,7 @@ public class DockerService {
 
     public Container getContainerByName(String name) {
         List<Container> containers = getDockerClient().listContainersCmd().withShowAll(true).withNameFilter(List.of(name)).exec();
-        return containers.get(0);
+        return containers.size() > 0 ? containers.get(0) : null;
     }
 
     public Statistics getContainerStats(String containerId) {
@@ -195,11 +195,13 @@ public class DockerService {
 
     public void logContainer(String containerName) {
         try {
-            LogCallback callback = new LogCallback();
             Container container = getContainerByName(containerName);
-            getDockerClient().logContainerCmd(container.getId())
-                .withStdOut(true).withStdErr(true).withTimestamps(true).exec(callback);
-            callback.awaitCompletion();
+            if (container != null) {
+                LogCallback callback = new LogCallback();
+                getDockerClient().logContainerCmd(container.getId())
+                        .withStdOut(true).withStdErr(true).withTimestamps(true).exec(callback);
+                callback.awaitCompletion();
+            }
         } catch (InterruptedException e) {
             throw new RuntimeException(e);
         }
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/DevModeCommand.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/DevModeCommand.java
index 3bc80546..c364c997 100644
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/DevModeCommand.java
+++ b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/DevModeCommand.java
@@ -29,10 +29,14 @@ public class DevModeCommand {
         this.time = time;
     }
 
-    public static DevModeCommand createDevModeCommand(DevModeCommandName commandName, String projectId) {
+    public static DevModeCommand createForProject(DevModeCommandName commandName, String projectId) {
         return new DevModeCommand(commandName, projectId, projectId + DEVMODE_SUFFIX, DevModeCommandType.DEVMODE, Instant.now().toEpochMilli());
     }
 
+    public static DevModeCommand createForContainer(DevModeCommandName commandName, String containerName) {
+        return new DevModeCommand(commandName, null, containerName, DevModeCommandType.DEVMODE, Instant.now().toEpochMilli());
+    }
+
     public static DevModeCommand createDevServiceCommand(DevModeCommandName commandName, String serviceName) {
         return new DevModeCommand(commandName, null, serviceName, DevModeCommandType.DEVSERVICE, Instant.now().toEpochMilli());
     }
diff --git a/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DataGridTest.java b/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DataGridTest.java
index e809d178..86c11346 100644
--- a/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DataGridTest.java
+++ b/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DataGridTest.java
@@ -49,10 +49,10 @@ public class DataGridTest {
     @Test
     public void sendCommand() throws InterruptedException {
         List<DevModeCommand> commandsSent = List.of(
-                DevModeCommand.createDevModeCommand(DevModeCommandName.RUN, "test1"),
-                DevModeCommand.createDevModeCommand(DevModeCommandName.RELOAD, "test1"),
-                DevModeCommand.createDevModeCommand(DevModeCommandName.DELETE, "test1"),
-                DevModeCommand.createDevModeCommand(DevModeCommandName.RUN, "test1")
+                DevModeCommand.createForProject(DevModeCommandName.RUN, "test1"),
+                DevModeCommand.createForProject(DevModeCommandName.RELOAD, "test1"),
+                DevModeCommand.createForProject(DevModeCommandName.DELETE, "test1"),
+                DevModeCommand.createForProject(DevModeCommandName.RUN, "test1")
         );
         commandsSent.forEach(devModeCommand -> datagridService.sendDevModeCommand(devModeCommand));