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 <[email protected]>
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 (