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 051d8dd838b9218025d30e8934900eceff16f985 Author: Marat Gubaidullin <ma...@talismancloud.io> AuthorDate: Thu Oct 24 09:02:28 2024 -0400 Karavan Improvements --- .../org/apache/camel/karavan/KaravanCache.java | 10 +++++--- .../org/apache/camel/karavan/KaravanEvents.java | 2 ++ .../apache/camel/karavan/KaravanStartupLoader.java | 30 ++++++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanCache.java b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanCache.java index 4a355245..94d60d9d 100644 --- a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanCache.java +++ b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanCache.java @@ -294,13 +294,17 @@ public class KaravanCache { return camelStatuses.get(key); } - public List<CamelStatus> getCamelStatusesByEnv(CamelStatusValue.Name name) { + public List<CamelStatus> getCamelStatusesByName(CamelStatusValue.Name name) { return getCopyCamelStatuses().stream().peek(cs -> { var values = cs.getStatuses(); cs.setStatuses(values.stream().filter(v -> Objects.equals(v.getName(), name)).toList()); }).toList(); } + public List<CamelStatus> getCamelAllStatuses() { + return getCopyCamelStatuses(); + } + public List<CamelStatus> getCamelStatusesByProjectAndEnv(String projectId, String env) { return getCopyCamelStatuses().stream().filter(el -> Objects.equals(el.getProjectId(), projectId) && Objects.equals(el.getEnv(), env)).toList(); } @@ -328,11 +332,11 @@ public class KaravanCache { } public List<PodContainerStatus> getLoadedDevModeStatuses() { - return getCopyPodContainerStatuses().stream().filter(el -> Objects.equals(el.getType(), PodContainerStatus.ContainerType.devmode) && Objects.equals(el.getCodeLoaded(), true)).toList(); + return getCopyPodContainerStatuses().stream().filter(el -> Objects.equals(el.getType(), ContainerType.devmode) && Objects.equals(el.getCodeLoaded(), true)).toList(); } public List<PodContainerStatus> getDevModeStatuses() { - return getCopyPodContainerStatuses().stream().filter(el -> Objects.equals(el.getType(), PodContainerStatus.ContainerType.devmode)).toList(); + return getCopyPodContainerStatuses().stream().filter(el -> Objects.equals(el.getType(), ContainerType.devmode)).toList(); } public List<PodContainerStatus> getContainerStatusByEnv(String env) { diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanEvents.java b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanEvents.java index f2fa16d7..7c3e8fe1 100644 --- a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanEvents.java +++ b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanEvents.java @@ -42,6 +42,8 @@ public class KaravanEvents { public static final String CMD_RELOAD_PROJECT_CODE = "CMD_RELOAD_PROJECT_CODE"; public static final String CMD_DELETE_CONTAINER = "CMD_DELETE_CONTAINER"; + public static final String CMD_RESTART_INFORMERS = "CMD_RESTART_INFORMERS"; + public static final String POD_CONTAINER_UPDATED = "POD_CONTAINER_UPDATED"; public static final String POD_CONTAINER_DELETED = "POD_CONTAINER_DELETED"; diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanStartupLoader.java b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanStartupLoader.java index 5b760eff..b59787cf 100644 --- a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanStartupLoader.java +++ b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanStartupLoader.java @@ -107,6 +107,7 @@ public class KaravanStartupLoader implements HealthCheck { addKameletsProject(); addTemplatesProject(); addConfigurationProject(); + addServicesProject(); } ready.set(true); } else { @@ -128,6 +129,8 @@ public class KaravanStartupLoader implements HealthCheck { project = new Project(Project.Type.kamelets.name(), "Custom Kamelets", repo.getCommitId(), repo.getLastCommitTimestamp(), Project.Type.kamelets); } else if (folderName.equals(Project.Type.configuration.name())) { project = new Project(Project.Type.configuration.name(), "Configuration", repo.getCommitId(), repo.getLastCommitTimestamp(), Project.Type.configuration); + } else if (folderName.equals(Project.Type.services.name())) { + project = new Project(Project.Type.services.name(), "Dev Services", repo.getCommitId(), repo.getLastCommitTimestamp(), Project.Type.services); } else { project = projectService.getProjectFromRepo(repo); } @@ -209,4 +212,31 @@ public class KaravanStartupLoader implements HealthCheck { LOGGER.error("Error during configuration project creation", e); } } + + void addServicesProject() { + try { + Project services = karavanCache.getProject(Project.Type.services.name()); + if (services == null) { + LOGGER.info("Add dev services project"); + services = new Project(Project.Type.services.name(), "Dev services", "", Instant.now().toEpochMilli(), Project.Type.services); + karavanCache.saveProject(services, true); + + codeService.getDevServicesFiles().forEach((name, value) -> { + ProjectFile file = new ProjectFile(name, value, Project.Type.services.name(), Instant.now().toEpochMilli()); + karavanCache.saveProjectFile(file, false, true); + }); + } else { + codeService.getDevServicesFiles().forEach((name, value) -> { + ProjectFile f = karavanCache.getProjectFile(Project.Type.services.name(), name); + if (f == null) { + LOGGER.info("Add new service " + name); + ProjectFile file = new ProjectFile(name, value, Project.Type.services.name(), Instant.now().toEpochMilli()); + karavanCache.saveProjectFile(file, false, true); + } + }); + } + } catch (Exception e) { + LOGGER.error("Error during services project creation", e); + } + } }