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 bd061918 Adapt UI for OpenShift #757 bd061918 is described below commit bd0619184180021d023461989d1c6ff6043a41ae Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Thu May 11 21:20:30 2023 -0400 Adapt UI for OpenShift #757 --- .../src/main/webui/src/projects/RunnerInfoPod.tsx | 28 ++++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/karavan-app/src/main/webui/src/projects/RunnerInfoPod.tsx b/karavan-app/src/main/webui/src/projects/RunnerInfoPod.tsx index 0827473f..fb40b1da 100644 --- a/karavan-app/src/main/webui/src/projects/RunnerInfoPod.tsx +++ b/karavan-app/src/main/webui/src/projects/RunnerInfoPod.tsx @@ -1,23 +1,15 @@ -import React, {useEffect, useState} from 'react'; +import React, {useEffect, useRef, useState} from 'react'; import { - Badge, Button, DescriptionList, DescriptionListDescription, DescriptionListGroup, DescriptionListTerm, - Flex, - FlexItem, Label, - LabelGroup, - Tooltip, - TooltipPosition + Tooltip } from '@patternfly/react-core'; import '../designer/karavan.css'; -import {CamelStatus, DeploymentStatus, PipelineStatus, PodStatus, Project} from "./ProjectModels"; -import RocketIcon from "@patternfly/react-icons/dist/esm/icons/rocket-icon"; -import PlayIcon from "@patternfly/react-icons/dist/esm/icons/play-icon"; -import DeleteIcon from "@patternfly/react-icons/dist/esm/icons/times-circle-icon"; +import {PodStatus, Project} from "./ProjectModels"; import {KaravanApi} from "../api/KaravanApi"; import {ProjectEventBus} from "./ProjectEventBus"; import DownIcon from "@patternfly/react-icons/dist/esm/icons/error-circle-o-icon"; @@ -32,13 +24,15 @@ interface Props { export const RunnerInfoPod = (props: Props) => { const [podStatus, setPodStatus] = useState(new PodStatus()); + const previousValue = useRef(new PodStatus()); useEffect(() => { + previousValue.current = podStatus; const interval = setInterval(() => { onRefreshStatus(); }, 1000); return () => clearInterval(interval); - }, []); + }, [podStatus]); function onRefreshStatus() { const projectId = props.project.projectId; @@ -46,6 +40,9 @@ export const RunnerInfoPod = (props: Props) => { KaravanApi.getRunnerPodStatus(projectId, name, res => { if (res.status === 200) { setPodStatus(res.data); + if (isRunning(res.data) && !isRunning(previousValue.current)) { + ProjectEventBus.showLog('container', res.data.name, props.config.environment); + } } else { ProjectEventBus.showLog('container', name, props.config.environment, false); setPodStatus(new PodStatus({name: name})); @@ -112,7 +109,12 @@ export const RunnerInfoPod = (props: Props) => { } function getRunning(): boolean { - return podStatus.phase === 'Running' && !podStatus.terminating; + return isRunning(podStatus); + } + + + function isRunning(status: PodStatus): boolean { + return status.phase === 'Running' && !status.terminating; } return (