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 <marat.gubaidul...@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>