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/13 16:10:09 UTC
[camel-karavan] 05/07: Run/Stop In docker #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
commit 2c8849bcbc10372a8c60b25d8d82000f51161d9c
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Wed Jul 12 20:07:40 2023 -0400
Run/Stop In docker #817
---
.../apache/camel/karavan/api/DevModeResource.java | 13 ++++++------
.../apache/camel/karavan/api/StatusResource.java | 2 +-
.../camel/karavan/handler/PodEventHandler.java | 10 ++++++---
.../karavan/listener/DevModeCommandListener.java | 2 +-
.../camel/karavan/service/CamelStatusService.java | 8 ++++----
.../camel/karavan/service/KaravanService.java | 2 +-
.../src/main/resources/application.properties | 2 +-
.../src/main/webui/src/api/KaravanApi.tsx | 4 +---
.../src/main/webui/src/api/ProjectModels.ts | 8 +++-----
.../src/main/webui/src/api/ProjectService.ts | 20 +++++++++---------
.../src/main/webui/src/api/ProjectStore.ts | 6 +++---
.../src/main/webui/src/dashboard/DashboardPage.tsx | 16 +++++++--------
.../src/main/webui/src/project/DevModeToolbar.tsx | 4 ++--
.../src/main/webui/src/project/ProjectPage.tsx | 3 +--
.../webui/src/project/dashboard/DashboardTab.tsx | 9 ++++----
.../webui/src/project/pipeline/ProjectStatus.tsx | 24 +++++++++++-----------
.../apache/camel/karavan/bashi/KaravanBashi.java | 2 +-
.../karavan/bashi/docker/DockerEventListener.java | 3 +--
.../camel/karavan/datagrid/DatagridService.java | 8 ++++----
.../camel/karavan/datagrid/DataGridTest.java | 15 ++++++++++----
karavan-cloud/pom.xml | 3 +--
21 files changed, 83 insertions(+), 81 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 0984076e..3cdef756 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
@@ -18,7 +18,7 @@ package org.apache.camel.karavan.api;
import org.apache.camel.karavan.datagrid.DatagridService;
import org.apache.camel.karavan.datagrid.model.*;
-import org.apache.camel.karavan.service.DevModeService;
+import org.apache.camel.karavan.service.CamelStatusService;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import javax.inject.Inject;
@@ -34,7 +34,7 @@ import javax.ws.rs.core.Response;
import java.time.Instant;
import java.util.Optional;
-import static org.apache.camel.karavan.service.DevModeService.DEVMODE_SUFFIX;
+import static org.apache.camel.karavan.service.CamelStatusService.DEVMODE_SUFFIX;
@Path("/api/devmode")
public class DevModeResource {
@@ -43,7 +43,7 @@ public class DevModeResource {
String environment;
@Inject
- DevModeService devModeService;
+ CamelStatusService camelStatusService;
@Inject
DatagridService datagridService;
@@ -74,7 +74,7 @@ public class DevModeResource {
@Produces(MediaType.APPLICATION_JSON)
@Path("/reload/{projectId}")
public Response reload(@PathParam("projectId") String projectId) {
- devModeService.reloadProjectCode(projectId);
+ camelStatusService.reloadProjectCode(projectId);
DevModeStatus dms = datagridService.getDevModeStatus(projectId);
dms.setCodeLoaded(true);
datagridService.saveDevModeStatus(dms);
@@ -108,10 +108,9 @@ public class DevModeResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
- @Path("/console/{projectId}/{statusName}")
+ @Path("/status/{projectId}/{statusName}")
public Response getCamelStatusByProjectAndEnv(@PathParam("projectId") String projectId, @PathParam("statusName") String statusName) {
- String name = projectId + "-" + DEVMODE_SUFFIX;
- CamelStatus status = datagridService.getCamelStatus(name, statusName, environment);
+ CamelStatus status = datagridService.getCamelStatus(projectId, environment, statusName);
if (status != null) {
return Response.ok(status).build();
} else {
diff --git a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java
index 2df5a937..29304c19 100644
--- a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java
+++ b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/api/StatusResource.java
@@ -84,6 +84,6 @@ public class StatusResource {
@Produces(MediaType.APPLICATION_JSON)
@Path("/camel/{env}")
public List<CamelStatus> getCamelStatusByEnv(@PathParam("env") String env) {
- return datagridService.getCamelStatusesByEnv(env, CamelStatusName.context.name());
+ return datagridService.getCamelStatusesByEnv(env, CamelStatusName.context);
}
}
\ No newline at end of file
diff --git a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/handler/PodEventHandler.java b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/handler/PodEventHandler.java
index 3ae8a199..a834829b 100644
--- a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/handler/PodEventHandler.java
+++ b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/handler/PodEventHandler.java
@@ -11,7 +11,7 @@ import org.apache.camel.karavan.service.KubernetesService;
import org.jboss.logging.Logger;
import static org.apache.camel.karavan.service.CodeService.DEFAULT_CONTAINER_RESOURCES;
-import static org.apache.camel.karavan.service.DevModeService.DEVMODE_SUFFIX;
+import static org.apache.camel.karavan.service.CamelStatusService.DEVMODE_SUFFIX;
public class PodEventHandler implements ResourceEventHandler<Pod> {
@@ -64,6 +64,7 @@ public class PodEventHandler implements ResourceEventHandler<Pod> {
String project = deployment != null ? deployment : pod.getMetadata().getLabels().get("karavan/projectId");
try {
boolean ready = pod.getStatus().getConditions().stream().anyMatch(c -> c.getType().equals("Ready"));
+ String creationTimestamp = pod.getMetadata().getCreationTimestamp();
ResourceRequirements defaultRR = kubernetesService.getResourceRequirements(DEFAULT_CONTAINER_RESOURCES);
ResourceRequirements resourceRequirements = pod.getSpec().getContainers().stream().findFirst()
@@ -81,7 +82,9 @@ public class PodEventHandler implements ResourceEventHandler<Pod> {
kubernetesService.environment,
deployment == null || pod.getMetadata().getName().endsWith(DEVMODE_SUFFIX),
requestMemory + " : " + limitMemory,
- requestCpu + " : " + limitCpu
+ requestCpu + " : " + limitCpu,
+ creationTimestamp
+
);
} catch (Exception ex) {
LOGGER.error(ex.getMessage(), ex.getCause());
@@ -91,7 +94,8 @@ public class PodEventHandler implements ResourceEventHandler<Pod> {
null,
project,
kubernetesService.environment,
- false);
+ false,
+ "");
}
}
}
\ No newline at end of file
diff --git a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/listener/DevModeCommandListener.java b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/listener/DevModeCommandListener.java
index 9a66fb71..32d83ce8 100644
--- a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/listener/DevModeCommandListener.java
+++ b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/listener/DevModeCommandListener.java
@@ -14,7 +14,7 @@ import javax.inject.Inject;
import java.util.Objects;
-import static org.apache.camel.karavan.service.DevModeService.DEVMODE_SUFFIX;
+import static org.apache.camel.karavan.service.CamelStatusService.DEVMODE_SUFFIX;
@ApplicationScoped
public class DevModeCommandListener {
diff --git a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelStatusService.java b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelStatusService.java
index da50f844..a3ef1288 100644
--- a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelStatusService.java
+++ b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelStatusService.java
@@ -37,9 +37,9 @@ import java.util.Objects;
import java.util.concurrent.ExecutionException;
@ApplicationScoped
-public class DevModeService {
+public class CamelStatusService {
- private static final Logger LOGGER = Logger.getLogger(DevModeService.class.getName());
+ private static final Logger LOGGER = Logger.getLogger(CamelStatusService.class.getName());
public static final String CMD_COLLECT_CAMEL_STATUS = "collect-camel-status";
public static final String CMD_DELETE_CAMEL_STATUS = "delete-camel-status";
public static final String DEVMODE_SUFFIX = "devmode";
@@ -115,7 +115,7 @@ public class DevModeService {
void collectDevModeStatuses() {
System.out.println("Collect DevMode Statuses");
if (datagridService.isReady()) {
- datagridService.getLoadedDevModeStatuses().forEach(dms -> {
+ datagridService.getDevModeStatuses().forEach(dms -> {
CamelStatusRequest csr = new CamelStatusRequest(dms.getProjectId(), dms.getContainerName());
eventBus.publish(CMD_COLLECT_CAMEL_STATUS, JsonObject.mapFrom(csr));
});
@@ -150,7 +150,7 @@ public class DevModeService {
void cleanupDevModeStatuses() {
System.out.println("Clean DevMode Statuses");
if (datagridService.isReady()) {
- datagridService.getLoadedDevModeStatuses().forEach(dms -> {
+ datagridService.getDevModeStatuses().forEach(dms -> {
PodStatus pod = datagridService.getDevModePodStatuses(dms.getProjectId(), environment);
if (pod == null) {
eventBus.publish(CMD_DELETE_CAMEL_STATUS, JsonObject.mapFrom(dms));
diff --git a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java
index b0b1f359..177401a6 100644
--- a/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java
+++ b/karavan-cloud/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java
@@ -48,7 +48,7 @@ public class KaravanService {
void onStart(@Observes StartupEvent ev) {
LOGGER.info("Start Karavan");
datagridService.start();
- datagridService.clearAllStatuses();
+// datagridService.clearAllStatuses();
setEnvironment();
initialImport();
startInformers();
diff --git a/karavan-cloud/karavan-app/src/main/resources/application.properties b/karavan-cloud/karavan-app/src/main/resources/application.properties
index c7a39319..4c7a49e6 100644
--- a/karavan-cloud/karavan-app/src/main/resources/application.properties
+++ b/karavan-cloud/karavan-app/src/main/resources/application.properties
@@ -2,7 +2,7 @@ karavan.version=3.21.1-SNAPSHOT
karavan.environment=dev
karavan.default-runtime=quarkus
karavan.runtimes=quarkus,spring-boot
-karavan.camel-status-interval=2s
+karavan.camel-status-interval=10s
karavan.devmode-status-interval=2s
quarkus.scheduler.enabled=true
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/api/KaravanApi.tsx b/karavan-cloud/karavan-app/src/main/webui/src/api/KaravanApi.tsx
index efb86595..f1549a3a 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/api/KaravanApi.tsx
+++ b/karavan-cloud/karavan-app/src/main/webui/src/api/KaravanApi.tsx
@@ -306,7 +306,6 @@ export class KaravanApi {
static async getDevModePodStatus(projectId: string, after: (res: AxiosResponse<PodStatus>) => void) {
instance.get('/api/devmode/pod/' + projectId)
.then(res => {
- console.log(res);
after(res);
}).catch(err => {
after(err);
@@ -322,10 +321,9 @@ export class KaravanApi {
});
}
- static async getDevModeStatus(projectId: string, statusName: string, after: (res: AxiosResponse<string>) => void) {
+ static async getDevModeStatus(projectId: string, statusName: string, after: (res: AxiosResponse<CamelStatus>) => void) {
instance.get('/api/devmode/status/' + projectId + "/" + statusName)
.then(res => {
- console.log(res);
after(res);
}).catch(err => {
after(err);
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectModels.ts b/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectModels.ts
index d743bef0..66ebe79b 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectModels.ts
+++ b/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectModels.ts
@@ -75,11 +75,9 @@ export class PodStatus {
export class CamelStatus {
projectId: string = '';
- registryStatus: string = '';
- routesStatus: string = '';
- consumerStatus: string = '';
- contextStatus: string = '';
- contextVersion: string = '';
+ containerName: string = '';
+ name: string = '';
+ status: string = '';
env: string = '';
}
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectService.ts b/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectService.ts
index c358ca52..d3a60eb2 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectService.ts
+++ b/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectService.ts
@@ -9,14 +9,14 @@ import {
useFilesStore,
useFileStore, useLogStore,
useProjectsStore,
- useProjectStore, useRunnerStore
+ useProjectStore, useDevModeStore
} from "./ProjectStore";
import {ProjectEventBus} from "./ProjectEventBus";
export class ProjectService {
public static startRunner(project: Project, verbose: boolean) {
- useRunnerStore.setState({status: "starting"})
+ useDevModeStore.setState({status: "starting"})
KaravanApi.runProject(project, verbose, res => {
if (res.status === 200 || res.status === 201) {
ProjectEventBus.sendLog("set", '');
@@ -28,7 +28,7 @@ export class ProjectService {
}
public static reloadRunner(project: Project) {
- useRunnerStore.setState({status: "reloading"})
+ useDevModeStore.setState({status: "reloading"})
KaravanApi.reloadDevMode(project.projectId, res => {
if (res.status === 200 || res.status === 201) {
// setIsReloadingPod(false);
@@ -40,7 +40,7 @@ export class ProjectService {
}
public static deleteRunner(project: Project) {
- useRunnerStore.setState({status: "deleting"})
+ useDevModeStore.setState({status: "deleting"})
ProjectEventBus.sendLog("set", '');
KaravanApi.deleteRunner(project.projectId, false, res => {
if (res.status === 202) {
@@ -57,19 +57,19 @@ export class ProjectService {
if (res.status === 200) {
unstable_batchedUpdates(() => {
const podStatus = res.data;
- if (useRunnerStore.getState().podName !== podStatus.name){
- useRunnerStore.setState({podName: podStatus.name})
+ if (useDevModeStore.getState().podName !== podStatus.name){
+ useDevModeStore.setState({podName: podStatus.name})
}
- if (useRunnerStore.getState().status !== "running"){
- useRunnerStore.setState({status: "running"})
+ if (useDevModeStore.getState().status !== "running"){
+ useDevModeStore.setState({status: "running"})
useLogStore.setState({isRunning: true})
}
useProjectStore.setState({podStatus: res.data});
})
} else {
unstable_batchedUpdates(() => {
- if (useRunnerStore.getState().status !== 'none') {
- useRunnerStore.setState({status: "none", podName: undefined})
+ if (useDevModeStore.getState().status !== 'none') {
+ useDevModeStore.setState({status: "none", podName: undefined})
useProjectStore.setState({podStatus: new PodStatus()});
}
})
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectStore.ts b/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectStore.ts
index 9298e283..d04fa3c2 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectStore.ts
+++ b/karavan-cloud/karavan-app/src/main/webui/src/api/ProjectStore.ts
@@ -151,17 +151,17 @@ export const useDeploymentStatusesStore = create<DeploymentStatusesState>((set)
}))
-interface RunnerState {
+interface DevModeState {
podName?: string,
status: "none" | "starting" | "deleting"| "reloading" | "running",
setStatus: (status: "none" | "starting" | "deleting"| "reloading" | "running") => void,
}
-export const useRunnerStore = create<RunnerState>((set) => ({
+export const useDevModeStore = create<DevModeState>((set) => ({
podName: undefined,
status: "none",
setStatus: (status: "none" | "starting" | "deleting"| "reloading" | "running") => {
- set((state: RunnerState) => ({
+ set((state: DevModeState) => ({
status: status,
}));
},
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/dashboard/DashboardPage.tsx b/karavan-cloud/karavan-app/src/main/webui/src/dashboard/DashboardPage.tsx
index 8bc9be07..448c865e 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/dashboard/DashboardPage.tsx
+++ b/karavan-cloud/karavan-app/src/main/webui/src/dashboard/DashboardPage.tsx
@@ -323,15 +323,15 @@ export class DashboardPage extends React.Component<Props, State> {
<Td modifier={"fitContent"}>
<Flex direction={{default: "column"}}>
{this.getCamelStatusByEnvironments(deployment).map(value => {
- const color = value[1] ? (value[1].consumerStatus === "UP" ? "green" : "red") : "grey";
- let icon = undefined;
- if (value[1]?.consumerStatus === "UP") icon = <UpIcon/>
- if (value[1]?.consumerStatus === "DOWN") icon = <DownIcon/>
- const text = value[1] && value[1]?.contextVersion ? value[1]?.contextVersion : "???";
+ // const color = value[1] ? (value[1].consumerStatus === "UP" ? "green" : "red") : "grey";
+ // let icon = undefined;
+ // if (value[1]?.consumerStatus === "UP") icon = <UpIcon/>
+ // if (value[1]?.consumerStatus === "DOWN") icon = <DownIcon/>
+ // const text = value[1] && value[1]?.contextVersion ? value[1]?.contextVersion : "???";
return <FlexItem key={value[0]}>
- <LabelGroup numLabels={4} className="camel-label-group">
- <Label color={color} className="table-label" icon={icon}>{text}</Label>
- </LabelGroup>
+ {/*<LabelGroup numLabels={4} className="camel-label-group">*/}
+ {/* <Label color={color} className="table-label" icon={icon}>{text}</Label>*/}
+ {/*</LabelGroup>*/}
</FlexItem>
})}
</Flex>
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/project/DevModeToolbar.tsx b/karavan-cloud/karavan-app/src/main/webui/src/project/DevModeToolbar.tsx
index fc099b50..ee9e2c8b 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/project/DevModeToolbar.tsx
+++ b/karavan-cloud/karavan-app/src/main/webui/src/project/DevModeToolbar.tsx
@@ -8,7 +8,7 @@ import '../designer/karavan.css';
import RocketIcon from "@patternfly/react-icons/dist/esm/icons/rocket-icon";
import ReloadIcon from "@patternfly/react-icons/dist/esm/icons/bolt-icon";
import DeleteIcon from "@patternfly/react-icons/dist/esm/icons/times-circle-icon";
-import {useProjectStore, useRunnerStore} from "../api/ProjectStore";
+import {useProjectStore, useDevModeStore} from "../api/ProjectStore";
import {ProjectService} from "../api/ProjectService";
import {shallow} from "zustand/shallow";
@@ -19,7 +19,7 @@ interface Props {
export const DevModeToolbar = (props: Props) => {
- const [status] = useRunnerStore((state) => [state.status], shallow)
+ const [status] = useDevModeStore((state) => [state.status], shallow)
const [project] = useProjectStore((state) => [state.project], shallow)
const [verbose, setVerbose] = useState(false);
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/project/ProjectPage.tsx b/karavan-cloud/karavan-app/src/main/webui/src/project/ProjectPage.tsx
index 6ad2bdd9..53febea5 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/project/ProjectPage.tsx
+++ b/karavan-cloud/karavan-app/src/main/webui/src/project/ProjectPage.tsx
@@ -18,7 +18,6 @@ import {shallow} from "zustand/shallow";
export const ProjectPage = () => {
- const [isUploadModalOpen, setIsUploadModalOpen] = useState<boolean>(false);
const {file, operation} = useFileStore();
const [mode, setMode] = useState<"design" | "code">("design");
const [key, setKey] = useState<string>('');
@@ -28,7 +27,7 @@ export const ProjectPage = () => {
// TODO: make status request only when started or just opened
const interval = setInterval(() => {
ProjectService.getDevModePodStatus(project);
- }, 2000);
+ }, 1000);
return () => {
clearInterval(interval)
};
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/project/dashboard/DashboardTab.tsx b/karavan-cloud/karavan-app/src/main/webui/src/project/dashboard/DashboardTab.tsx
index a2b90e28..0c065908 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/project/dashboard/DashboardTab.tsx
+++ b/karavan-cloud/karavan-app/src/main/webui/src/project/dashboard/DashboardTab.tsx
@@ -40,28 +40,27 @@ export const DashboardTab = () => {
return () => {
clearInterval(interval)
};
-
- }, [podStatus]);
+ }, []);
function onRefreshStatus() {
const projectId = project.projectId;
KaravanApi.getDevModeStatus(projectId, "memory", res => {
if (res.status === 200) {
- setMemory(res.data);
+ setMemory(JSON.parse(res.data.status));
} else {
setMemory({});
}
})
KaravanApi.getDevModeStatus(projectId, "jvm", res => {
if (res.status === 200) {
- setJvm(res.data);
+ setJvm(JSON.parse(res.data.status));
} else {
setJvm({});
}
})
KaravanApi.getDevModeStatus(projectId, "context", res => {
if (res.status === 200) {
- setContext(res.data);
+ setContext(JSON.parse(res.data.status));
} else {
setContext({});
}
diff --git a/karavan-cloud/karavan-app/src/main/webui/src/project/pipeline/ProjectStatus.tsx b/karavan-cloud/karavan-app/src/main/webui/src/project/pipeline/ProjectStatus.tsx
index 25ac03f9..29e2b8a4 100644
--- a/karavan-cloud/karavan-app/src/main/webui/src/project/pipeline/ProjectStatus.tsx
+++ b/karavan-cloud/karavan-app/src/main/webui/src/project/pipeline/ProjectStatus.tsx
@@ -248,20 +248,20 @@ export class ProjectStatus extends React.Component<Props, State> {
getHealthPanel(env: string) {
const status = this.state.camelStatus;
- const routesStatus = status?.routesStatus;
- const consumersStatus = status?.consumerStatus;
- const contextStatus = status?.contextStatus;
- const contextVersion = status?.contextVersion;
+ // const routesStatus = status?.routesStatus;
+ // const consumersStatus = status?.consumerStatus;
+ // const contextStatus = status?.contextStatus;
+ // const contextVersion = status?.contextVersion;
return (
<LabelGroup numLabels={4}>
- {contextVersion &&
- <Label icon={this.getStatusIcon(contextStatus)}
- color={this.getStatusColor(contextStatus)}>{contextVersion}</Label>}
- <Label icon={this.getStatusIcon(contextStatus)}
- color={this.getStatusColor(contextStatus)}>Context</Label>
- <Label icon={this.getStatusIcon(consumersStatus)}
- color={this.getStatusColor(consumersStatus)}>Consumers</Label>
- <Label icon={this.getStatusIcon(routesStatus)} color={this.getStatusColor(routesStatus)}>Routes</Label>
+ {/*{contextVersion &&*/}
+ {/* <Label icon={this.getStatusIcon(contextStatus)}*/}
+ {/* color={this.getStatusColor(contextStatus)}>{contextVersion}</Label>}*/}
+ {/*<Label icon={this.getStatusIcon(contextStatus)}*/}
+ {/* color={this.getStatusColor(contextStatus)}>Context</Label>*/}
+ {/*<Label icon={this.getStatusIcon(consumersStatus)}*/}
+ {/* color={this.getStatusColor(consumersStatus)}>Consumers</Label>*/}
+ {/*<Label icon={this.getStatusIcon(routesStatus)} color={this.getStatusColor(routesStatus)}>Routes</Label>*/}
</LabelGroup>
)
}
diff --git a/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/KaravanBashi.java b/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/KaravanBashi.java
index f0a8a630..98c3f40d 100644
--- a/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/KaravanBashi.java
+++ b/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/KaravanBashi.java
@@ -21,7 +21,7 @@ public class KaravanBashi {
private static final Logger LOGGER = Logger.getLogger(KaravanBashi.class.getName());
- void onStart(@Observes StartupEvent ev) throws InterruptedException {
+ void onStart(@Observes StartupEvent ev) {
LOGGER.info("Karavan Bashi is starting...");
dockerService.createNetwork();
dockerService.checkDataGridHealth();
diff --git a/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerEventListener.java b/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerEventListener.java
index be068895..db7b8358 100644
--- a/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerEventListener.java
+++ b/karavan-cloud/karavan-bashi/src/main/java/org/apache/camel/karavan/bashi/docker/DockerEventListener.java
@@ -57,13 +57,12 @@ public class DockerEventListener implements ResultCallback<Event> {
if (Arrays.asList("stop", "die", "kill", "pause", "destroy").contains(event.getStatus())) {
String name = container.getNames()[0].replace("/", "");
String projectId = name.replace("-" + Constants.DEVMODE_SUFFIX, "");
- LOGGER.info("Deleted PodStatus for " + projectId);
datagridService.deletePodStatus(projectId, environment, name);
+ datagridService.deleteCamelStatuses(projectId, environment);
} else if (Arrays.asList("start", "unpause").contains(event.getStatus())) {
String name = container.getNames()[0].replace("/", "");
String projectId = name.replace("-" + Constants.DEVMODE_SUFFIX, "");
PodStatus ps = new PodStatus(name, true, null, projectId, environment, true, Instant.ofEpochSecond(container.getCreated()).toString());
- LOGGER.info("Saved PodStatus for " + projectId);
datagridService.savePodStatus(ps);
}
}
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java
index 6141addd..5535211c 100644
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java
+++ b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java
@@ -309,7 +309,7 @@ public class DatagridService {
return camelStatuses.get(key);
}
- public List<CamelStatus> getCamelStatusesByEnv(String env, String name) {
+ public List<CamelStatus> getCamelStatusesByEnv(String env, CamelStatusName name) {
QueryFactory queryFactory = Search.getQueryFactory(camelStatuses);
return queryFactory.<CamelStatus>create("FROM karavan.CamelStatus WHERE env = :env AND name = :name")
.setParameter("env", env)
@@ -317,11 +317,11 @@ public class DatagridService {
.execute().list();
}
- public List<CamelStatus> getCamelStatusesByProjectIdEnv(String projectId, String name) {
+ public List<CamelStatus> getCamelStatusesByProjectIdEnv(String projectId, String env) {
QueryFactory queryFactory = Search.getQueryFactory(camelStatuses);
- return queryFactory.<CamelStatus>create("FROM karavan.CamelStatus WHERE projectId = :projectId AND name = :name")
+ return queryFactory.<CamelStatus>create("FROM karavan.CamelStatus WHERE projectId = :projectId AND name = :env")
.setParameter("projectId", projectId)
- .setParameter("name", name)
+ .setParameter("env", env)
.execute().list();
}
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 37c272e4..5e4fb8c0 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
@@ -4,9 +4,7 @@ package org.apache.camel.karavan.datagrid;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.vertx.ConsumeEvent;
import io.vertx.core.json.JsonObject;
-import org.apache.camel.karavan.datagrid.model.CommandName;
-import org.apache.camel.karavan.datagrid.model.DevModeCommand;
-import org.apache.camel.karavan.datagrid.model.ProjectFile;
+import org.apache.camel.karavan.datagrid.model.*;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
@@ -59,8 +57,17 @@ public class DataGridTest {
}
@Test
- public void getProjectFiles() throws InterruptedException {
+ public void testProjectFiles() throws InterruptedException {
List<ProjectFile> files = datagridService.getProjectFiles("xxx");
assertEquals(0, files.size());
}
+
+ @Test
+ public void testCamelStatuses() throws InterruptedException {
+ CamelStatus cs = new CamelStatus("test1", "container1", CamelStatusName.context, "", "dev");
+ datagridService.saveCamelStatus(cs);
+ List<CamelStatus> list = datagridService.getCamelStatusesByEnv("dev", CamelStatusName.context);
+ System.out.println(list);
+ assertEquals(1, list.size());
+ }
}
diff --git a/karavan-cloud/pom.xml b/karavan-cloud/pom.xml
index 1862fa72..c54f9c61 100644
--- a/karavan-cloud/pom.xml
+++ b/karavan-cloud/pom.xml
@@ -19,12 +19,11 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
- <quarkus.platform.version>2.16.7.Final</quarkus.platform.version>
+ <quarkus.platform.version>2.16.8.Final</quarkus.platform.version>
<camel-quarkus.version>2.16.0</camel-quarkus.version>
<camel.version>3.21.0</camel.version>
<camel-kamelet.version>3.21.0</camel-kamelet.version>
<surefire-plugin.version>3.1.0</surefire-plugin.version>
- <infinispan.version>14.0.9.Final</infinispan.version>
<tekton.version>6.3.1</tekton.version>
<jgit.version>2.3.2</jgit.version>
<quinoa.version>1.2.4</quinoa.version>