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 2022/10/28 23:28:27 UTC

[camel-karavan] branch main updated: Pipeline and Camel statuses by environment

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 18e24f6  Pipeline and Camel statuses by environment
18e24f6 is described below

commit 18e24f6caa5c304f3f454faa17e869e5af8dd6df
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Fri Oct 28 19:28:17 2022 -0400

    Pipeline and Camel statuses by environment
---
 .../org/apache/camel/karavan/api/StatusResource.java    | 12 ++++++------
 .../camel/karavan/informer/PipelineRunEventHandler.java | 13 -------------
 .../org/apache/camel/karavan/model/CamelStatus.java     | 17 ++++++++++++-----
 .../apache/camel/karavan/service/InfinispanService.java | 10 +++++-----
 .../apache/camel/karavan/service/KubernetesService.java |  1 -
 karavan-app/src/main/webapp/src/api/KaravanApi.tsx      |  8 ++++----
 .../src/main/webapp/src/projects/ProjectInfo.tsx        | 11 ++++++-----
 .../src/main/webapp/src/projects/ProjectModels.ts       |  1 +
 8 files changed, 34 insertions(+), 39 deletions(-)

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 5f88aec..8d75560 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
@@ -47,9 +47,9 @@ public class StatusResource {
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
-    @Path("/pipeline/{projectId}")
-    public Response getPipelineStatus(@PathParam("projectId") String projectId) {
-        PipelineStatus status = infinispanService.getPipelineStatus(projectId);
+    @Path("/pipeline/{projectId}/{env}")
+    public Response getPipelineStatus(@PathParam("projectId") String projectId, @PathParam("env") String env) {
+        PipelineStatus status = infinispanService.getPipelineStatus(projectId, env);
         if (status != null) {
             return Response.ok(status).build();
         } else {
@@ -73,10 +73,10 @@ public class StatusResource {
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
-    @Path("/camel/{projectId}")
-    public Response getCamelStatus(@PathParam("projectId") String projectId) {
+    @Path("/camel/{projectId}/{env}")
+    public Response getCamelStatus(@PathParam("projectId") String projectId, @PathParam("env") String env) {
         bus.publish(StatusService.CMD_COLLECT_STATUSES, projectId);
-        CamelStatus status = infinispanService.getCamelStatus(projectId);
+        CamelStatus status = infinispanService.getCamelStatus(projectId, env);
         if (status != null) {
             return Response.ok(status).build();
         } else {
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/informer/PipelineRunEventHandler.java b/karavan-app/src/main/java/org/apache/camel/karavan/informer/PipelineRunEventHandler.java
index 3254e26..171e4b3 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/informer/PipelineRunEventHandler.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/informer/PipelineRunEventHandler.java
@@ -90,17 +90,4 @@ public class PipelineRunEventHandler implements ResourceEventHandler<PipelineRun
         }
         return null;
     }
-
-    private Long getPipelineRunDuration(PipelineRun pipelineRun) {
-        try {
-            Instant create = Instant.parse(pipelineRun.getMetadata().getCreationTimestamp());
-            Instant completion = pipelineRun.getStatus().getCompletionTime() != null
-                    ? Instant.parse(pipelineRun.getStatus().getCompletionTime())
-                    : Instant.now();
-            return completion.getEpochSecond() - create.getEpochSecond();
-        } catch (Exception ex) {
-            LOGGER.error(ex.getMessage());
-            return 0L;
-        }
-    }
 }
\ No newline at end of file
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatus.java b/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatus.java
index a6e0e18..a9be1db 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatus.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatus.java
@@ -18,6 +18,8 @@ public class CamelStatus {
     Status registryStatus;
     @ProtoField(number = 6)
     String contextVersion;
+    @ProtoField(number = 7)
+    String env;
 
     public enum Status {
         @ProtoEnumValue(number = 0, name = "DOWN")
@@ -29,17 +31,14 @@ public class CamelStatus {
     }
 
     @ProtoFactory
-    public CamelStatus(String projectId, Status contextStatus, Status consumerStatus, Status routesStatus, Status registryStatus, String contextVersion) {
+    public CamelStatus(String projectId, Status contextStatus, Status consumerStatus, Status routesStatus, Status registryStatus, String contextVersion, String env) {
         this.projectId = projectId;
         this.contextStatus = contextStatus;
         this.consumerStatus = consumerStatus;
         this.routesStatus = routesStatus;
         this.registryStatus = registryStatus;
         this.contextVersion = contextVersion;
-    }
-
-    public CamelStatus(String projectId) {
-        this.projectId = projectId;
+        this.env = env;
     }
 
     public String getProjectId() {
@@ -89,4 +88,12 @@ public class CamelStatus {
     public void setContextVersion(String contextVersion) {
         this.contextVersion = contextVersion;
     }
+
+    public String getEnv() {
+        return env;
+    }
+
+    public void setEnv(String env) {
+        this.env = env;
+    }
 }
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
index aa4026a..ee95cf6 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
@@ -172,8 +172,8 @@ public class InfinispanService {
         return projects.get(GroupedKey.create(project, project));
     }
 
-    public PipelineStatus getPipelineStatus(String projectId) {
-        return pipelineStatuses.get(GroupedKey.create(projectId, projectId));
+    public PipelineStatus getPipelineStatus(String projectId, String environment) {
+        return pipelineStatuses.get(GroupedKey.create(projectId, environment));
     }
 
     public void savePipelineStatus(PipelineStatus status) {
@@ -265,12 +265,12 @@ public class InfinispanService {
         podStatuses.remove(GroupedKey.create(status.getDeployment(), status.getName()));
     }
 
-    public CamelStatus getCamelStatus(String projectId) {
-        return camelStatuses.get(GroupedKey.create(projectId, projectId));
+    public CamelStatus getCamelStatus(String projectId, String env) {
+        return camelStatuses.get(GroupedKey.create(projectId, env));
     }
 
     public void saveCamelStatus(CamelStatus status) {
-        camelStatuses.put(GroupedKey.create(status.getProjectId(), status.getProjectId()), status);
+        camelStatuses.put(GroupedKey.create(status.getProjectId(), status.getEnv()), status);
     }
 
     public List<String> getKameletNames() {
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java
index 0ada2cf..5e2d58c 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java
@@ -90,7 +90,6 @@ public class KubernetesService {
     }
 
     @ConfigProperty(name = "karavan.environment")
-    public
     String environment;
 
     @ConfigProperty(name = "karavan.pipeline")
diff --git a/karavan-app/src/main/webapp/src/api/KaravanApi.tsx b/karavan-app/src/main/webapp/src/api/KaravanApi.tsx
index b2cb1af..0982b85 100644
--- a/karavan-app/src/main/webapp/src/api/KaravanApi.tsx
+++ b/karavan-app/src/main/webapp/src/api/KaravanApi.tsx
@@ -156,8 +156,8 @@ export class KaravanApi {
         });
     }
 
-    static async getProjectPipelineStatus(projectId: string, after: (status: PipelineStatus) => void) {
-        instance.get('/api/status/pipeline/' + projectId)
+    static async getProjectPipelineStatus(projectId: string, env: string, after: (status: PipelineStatus) => void) {
+        instance.get('/api/status/pipeline/' + projectId + "/" + env)
             .then(res => {
                 if (res.status === 200) {
                     after(res.data);
@@ -178,8 +178,8 @@ export class KaravanApi {
         });
     }
 
-    static async getProjectCamelStatus(projectId: string, after: (status: CamelStatus) => void) {
-        instance.get('/api/status/camel/' + projectId)
+    static async getProjectCamelStatus(projectId: string, env: string, after: (status: CamelStatus) => void) {
+        instance.get('/api/status/camel/' + projectId + "/" + env)
             .then(res => {
                 if (res.status === 200) {
                     after(res.data);
diff --git a/karavan-app/src/main/webapp/src/projects/ProjectInfo.tsx b/karavan-app/src/main/webapp/src/projects/ProjectInfo.tsx
index 132d4dc..5eb0108 100644
--- a/karavan-app/src/main/webapp/src/projects/ProjectInfo.tsx
+++ b/karavan-app/src/main/webapp/src/projects/ProjectInfo.tsx
@@ -77,21 +77,22 @@ export class ProjectInfo extends React.Component<Props, State> {
     }
 
     onRefreshStatus = () => {
-        // console.log("onRefreshStatus", this.props.project)
+        const projectId = this.props.project.projectId;
+        const environment = this.state.environment;
         if (this.props.project) {
-            KaravanApi.getProjectPipelineStatus(this.props.project.projectId, (status: PipelineStatus) => {
+            KaravanApi.getProjectPipelineStatus(projectId, environment, (status: PipelineStatus) => {
                 this.setState({key: Math.random().toString(), pipelineStatus: status});
                 // console.log(status);
             });
-            KaravanApi.getProjectDeploymentStatus(this.props.project.projectId, this.state.environment, (status: DeploymentStatus) => {
+            KaravanApi.getProjectDeploymentStatus(projectId, environment, (status: DeploymentStatus) => {
                 this.setState({key: Math.random().toString(), deploymentStatus: status});
                 // console.log(status);
             });
-            KaravanApi.getProjectPodStatuses(this.props.project.projectId, this.state.environment, (statuses: PodStatus[]) => {
+            KaravanApi.getProjectPodStatuses(projectId, environment, (statuses: PodStatus[]) => {
                 this.setState({key: Math.random().toString(), podStatuses: statuses});
                 // console.log(status);
             });
-            KaravanApi.getProjectCamelStatus(this.props.project.projectId, (status: CamelStatus) => {
+            KaravanApi.getProjectCamelStatus(projectId, environment, (status: CamelStatus) => {
                 this.setState({key: Math.random().toString(), camelStatus: status});
                 // console.log(status);
             });
diff --git a/karavan-app/src/main/webapp/src/projects/ProjectModels.ts b/karavan-app/src/main/webapp/src/projects/ProjectModels.ts
index 455182e..7165507 100644
--- a/karavan-app/src/main/webapp/src/projects/ProjectModels.ts
+++ b/karavan-app/src/main/webapp/src/projects/ProjectModels.ts
@@ -58,6 +58,7 @@ export class CamelStatus {
     consumerStatus: string = '';
     contextStatus: string = '';
     contextVersion: string = '';
+    env: string = '';
 }
 
 export class PipelineStatus {