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 4b9918c221f1713be026b5d207347ff6e3062cfa
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Thu Oct 24 09:01:57 2024 -0400

    API Resources Improvements
---
 .../apache/camel/karavan/api/AbstractApiResource.java  |  7 +++++--
 .../apache/camel/karavan/api/ContainerResource.java    | 18 +++++++++---------
 .../org/apache/camel/karavan/api/DevModeResource.java  |  4 +++-
 .../camel/karavan/api/InfrastructureResource.java      | 12 ++++++++----
 .../apache/camel/karavan/api/MetadataResources.java    |  7 +++++++
 .../org/apache/camel/karavan/api/StatusResource.java   | 13 ++++++++++---
 6 files changed, 42 insertions(+), 19 deletions(-)

diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/AbstractApiResource.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/AbstractApiResource.java
index 631171fe..650b3e91 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/AbstractApiResource.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/AbstractApiResource.java
@@ -35,12 +35,15 @@ public class AbstractApiResource {
     public HashMap<String, String> getIdentity(SecurityContext 
securityContext) {
         var identity = new HashMap<String, String>();
         identity.put("email", "kara...@test.org");
+        identity.put("name", "karavan");
 
         if (securityContext != null && securityContext.getUserPrincipal() != 
null && securityContext.getUserPrincipal() instanceof DefaultJWTCallerPrincipal 
principal) {
-            identity.put("name", principal.getName());
+            if (principal.getName() != null) {
+                identity.put("name", principal.getName());
+            }
             identity.put("email", principal.getClaim(Claims.email));
         } else if (securityIdentity != null) {
-            if (securityIdentity.getPrincipal() != null) {
+            if (securityIdentity.getPrincipal() != null && 
securityIdentity.getPrincipal().getName() != null) {
                 identity.put("name", 
securityIdentity.getPrincipal().getName());
             }
             if (securityIdentity.getAttributes().get("email") != null && 
!securityIdentity.getAttributes().get("email").toString().isBlank()) {
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java
index af7b6533..84b45ea4 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java
@@ -29,6 +29,7 @@ import org.apache.camel.karavan.KaravanConstants;
 import org.apache.camel.karavan.docker.DockerComposeConverter;
 import org.apache.camel.karavan.docker.DockerService;
 import org.apache.camel.karavan.kubernetes.KubernetesService;
+import org.apache.camel.karavan.model.ContainerType;
 import org.apache.camel.karavan.model.DockerComposeService;
 import org.apache.camel.karavan.model.PodContainerStatus;
 import org.apache.camel.karavan.service.ConfigService;
@@ -112,29 +113,28 @@ public class ContainerResource {
         }
     }
 
-    private void deployContainer(String projectId, String type, JsonObject 
command) throws InterruptedException {
-        if (Objects.equals(type, 
PodContainerStatus.ContainerType.devservice.name())) {
-            String code = projectService.getDevServiceCode();
+    public void deployContainer(String projectId, String type, JsonObject 
command) throws InterruptedException {
+        if (Objects.equals(type, ContainerType.devservice.name())) {
+            String code = projectService.getDockerDevServiceCode();
             DockerComposeService dockerComposeService = 
DockerComposeConverter.fromCode(code, projectId);
             if (dockerComposeService != null) {
                 Map<String, String> labels = new HashMap<>();
-                labels.put(LABEL_TYPE, 
PodContainerStatus.ContainerType.devservice.name());
-                labels.put(LABEL_CAMEL_RUNTIME, 
CamelRuntime.CAMEL_MAIN.getValue());
+                labels.put(LABEL_TYPE, ContainerType.devservice.name());
                 labels.put(LABEL_PROJECT_ID, projectId);
                 dockerService.createContainerFromCompose(dockerComposeService, 
labels, needPull(command));
                 
dockerService.runContainer(dockerComposeService.getContainer_name());
             }
-        } else if (Objects.equals(type, 
PodContainerStatus.ContainerType.project.name())) {
+        } else if (Objects.equals(type, ContainerType.project.name())) {
             DockerComposeService dockerComposeService = 
projectService.getProjectDockerComposeService(projectId);
             if (dockerComposeService != null) {
                 Map<String, String> labels = new HashMap<>();
-                labels.put(LABEL_TYPE, 
PodContainerStatus.ContainerType.project.name());
+                labels.put(LABEL_TYPE, ContainerType.project.name());
                 labels.put(LABEL_CAMEL_RUNTIME, 
CamelRuntime.CAMEL_MAIN.getValue());
                 labels.put(LABEL_PROJECT_ID, projectId);
                 dockerService.createContainerFromCompose(dockerComposeService, 
labels, needPull(command));
                 
dockerService.runContainer(dockerComposeService.getContainer_name());
             }
-        } else if (Objects.equals(type, 
PodContainerStatus.ContainerType.devmode.name())) {
+        } else if (Objects.equals(type, ContainerType.devmode.name())) {
 //                        TODO: merge with DevMode service
 //                        dockerForKaravan.createDevmodeContainer(name, "");
 //                        dockerService.runContainer(name);
@@ -151,7 +151,7 @@ public class ContainerResource {
     private void setContainerStatusTransit(String projectId, String name, 
String type) {
         PodContainerStatus status = 
karavanCache.getPodContainerStatus(projectId, environment, name);
         if (status == null) {
-            status = PodContainerStatus.createByType(projectId, environment, 
PodContainerStatus.ContainerType.valueOf(type));
+            status = PodContainerStatus.createByType(projectId, environment, 
ContainerType.valueOf(type));
         }
         status.setInTransit(true);
         eventBus.publish(POD_CONTAINER_UPDATED, JsonObject.mapFrom(status));
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
index 0f894c4b..2fac96a2 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
@@ -29,6 +29,8 @@ import org.apache.camel.karavan.service.ProjectService;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
 import org.jboss.logging.Logger;
 
+import java.util.Map;
+
 import static org.apache.camel.karavan.KaravanEvents.CMD_DELETE_CONTAINER;
 import static org.apache.camel.karavan.KaravanEvents.CMD_RELOAD_PROJECT_CODE;
 
@@ -55,7 +57,7 @@ public class DevModeResource {
     @Path("/{jBangOptions}")
     public Response runProjectWithJBangOptions(Project project, 
@PathParam("jBangOptions") String jBangOptions) {
         try {
-            String containerName = 
projectService.runProjectWithJBangOptions(project, jBangOptions);
+            String containerName = 
projectService.runProjectWithJBangOptions(project, jBangOptions, Map.of(), 
Map.of());
             if (containerName != null) {
                 return Response.ok(containerName).build();
             } else {
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java
index 9b89294c..862ec999 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.karavan.api;
 
+import io.vertx.core.eventbus.EventBus;
 import jakarta.inject.Inject;
 import jakarta.ws.rs.*;
 import jakarta.ws.rs.core.MediaType;
@@ -23,7 +24,7 @@ import jakarta.ws.rs.core.Response;
 import org.apache.camel.karavan.KaravanCache;
 import org.apache.camel.karavan.KaravanConstants;
 import org.apache.camel.karavan.kubernetes.KubernetesService;
-import org.apache.camel.karavan.kubernetes.KubernetesStatusService;
+import org.apache.camel.karavan.model.ContainerType;
 import org.apache.camel.karavan.model.DeploymentStatus;
 import org.apache.camel.karavan.model.ProjectFile;
 import org.apache.camel.karavan.model.ServiceStatus;
@@ -33,10 +34,13 @@ import org.jboss.logging.Logger;
 
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static 
org.apache.camel.karavan.KaravanConstants.KUBERNETES_YAML_FILENAME;
+import static org.apache.camel.karavan.KaravanConstants.LABEL_TYPE;
+import static org.apache.camel.karavan.KaravanEvents.CMD_RESTART_INFORMERS;
 
 @Path("/ui/infrastructure")
 public class InfrastructureResource {
@@ -48,7 +52,7 @@ public class InfrastructureResource {
     KubernetesService kubernetesService;
 
     @Inject
-    KubernetesStatusService kubernetesStatusService;
+    EventBus eventBus;
 
     @ConfigProperty(name = "karavan.environment", defaultValue = 
KaravanConstants.DEV)
     String environment;
@@ -90,7 +94,7 @@ public class InfrastructureResource {
         if (resources == null) {
             return Response.status(Response.Status.NOT_FOUND).entity("Resource 
file " + KUBERNETES_YAML_FILENAME + " not found").build();
         }
-        kubernetesService.startDeployment(resources.getCode());
+        kubernetesService.startDeployment(resources.getCode(), 
Map.of(LABEL_TYPE, ContainerType.project.name()));
         return Response.ok().build();
     }
 
@@ -154,7 +158,7 @@ public class InfrastructureResource {
     @Path("/informers")
     public Response restartInformers() {
         if (ConfigService.inKubernetes()) {
-            kubernetesStatusService.startInformers();
+            eventBus.publish(CMD_RESTART_INFORMERS, "");
             return Response.ok().build();
         } else {
             return Response.noContent().build();
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/MetadataResources.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/MetadataResources.java
index 183e7e0a..f5cf8643 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/MetadataResources.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/MetadataResources.java
@@ -84,4 +84,11 @@ public class MetadataResources {
     public String getSpiBeans() {
         return codeService.getResourceFile("/metadata/spiBeans.json");
     }
+
+    @GET
+    @Path("/mainConfiguration")
+    @Produces(MediaType.APPLICATION_JSON)
+    public String getMainConfiguration() {
+        return 
codeService.getResourceFile("/metadata/camel-main-configuration-metadata.json");
+    }
 }
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java
index d4711aee..0e96a431 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java
@@ -49,9 +49,16 @@ public class StatusResource {
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
-    @Path("/camel/context")
-    public List<CamelStatus> getCamelContextStatusByEnv() {
-        return 
karavanCache.getCamelStatusesByEnv(CamelStatusValue.Name.context);
+    @Path("/camel")
+    public List<CamelStatus> getCamelAllStatuses() {
+        return karavanCache.getCamelAllStatuses();
+    }
+
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/camel/{context}")
+    public List<CamelStatus> 
getCamelContextStatusesByName(@PathParam("context") String context) {
+        return 
karavanCache.getCamelStatusesByName(CamelStatusValue.Name.valueOf(context));
     }
 
     @DELETE

Reply via email to