Skip to content

Commit

Permalink
Fix BuildConfig Last duration and filter
Browse files Browse the repository at this point in the history
  • Loading branch information
vikram-raj committed Jun 19, 2023
1 parent 50e42de commit 00731e4
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 39 deletions.
85 changes: 51 additions & 34 deletions frontend/public/components/build-config.tsx
Expand Up @@ -32,7 +32,6 @@ import {
BuildEnvironmentComponent,
BuildStrategyType,
PipelineBuildStrategyAlert,
allPhases,
} from './build';
import { ResourceEventStream } from './events';
import { BuildConfigModel, BuildModel } from '../models';
Expand Down Expand Up @@ -66,28 +65,32 @@ const startBuildAction: KebabAction = (kind, buildConfig) => ({
},
});

const startLastBuildAction: KebabAction = (kind, buildConfig: BuildConfig) => ({
// t('public~Start last run')
labelKey: 'public~Start last run',
hidden: !buildConfig.latestBuild,
callback: () =>
cloneBuild(buildConfig.latestBuild)
.then((clone) => {
history.push(resourceObjPath(clone, referenceFor(clone)));
})
.catch((err) => {
const error = err.message;
errorModal({ error });
}),
accessReview: {
group: kind.apiGroup,
resource: kind.plural,
subresource: 'instantiate',
name: buildConfig.metadata.name,
namespace: buildConfig.metadata.namespace,
verb: 'create',
},
});
const isLastbuildPresent = (build) => (build ? true : false);

const startLastBuildAction: KebabAction = (kind, buildConfig: BuildConfig) => {
return {
// t('public~Start last run')
labelKey: 'public~Start last run',
callback: () =>
cloneBuild(buildConfig.latestBuild)
.then((clone) => {
history.push(resourceObjPath(clone, referenceFor(clone)));
})
.catch((err) => {
const error = err.message;
errorModal({ error });
}),
hidden: !isLastbuildPresent(buildConfig.latestBuild),
accessReview: {
group: kind.apiGroup,
resource: kind.plural,
subresource: 'instantiate',
name: buildConfig.metadata.name,
namespace: buildConfig.metadata.namespace,
verb: 'create',
},
};
};

const menuActions = [
startBuildAction,
Expand Down Expand Up @@ -151,11 +154,11 @@ const tableColumnClasses = [
];

const displayDurationInWords = (start: string, stop: string): string => {
if (!start || !stop) {
if (!start) {
return '-';
}
const startTime = new Date(start).getTime();
const stopTime = new Date(stop).getTime();
const stopTime = stop ? new Date(stop).getTime() : new Date().getTime();
let duration = (stopTime - startTime) / 1000;
const time = [];
let durationInWords = '';
Expand Down Expand Up @@ -185,11 +188,6 @@ const displayDurationInWords = (start: string, stop: string): string => {
const BuildConfigsTableRow: React.FC<RowFunctionArgs<BuildConfig>> = ({ obj }) => {
const latestBuild = obj?.latestBuild;

const duration = displayDurationInWords(
latestBuild?.status?.startTimestamp,
latestBuild?.status?.completionTimestamp,
);

return (
<>
<TableData className={tableColumnClasses[0]}>
Expand Down Expand Up @@ -222,7 +220,12 @@ const BuildConfigsTableRow: React.FC<RowFunctionArgs<BuildConfig>> = ({ obj }) =
<TableData className={tableColumnClasses[4]}>
{latestBuild ? <Timestamp timestamp={latestBuild.metadata?.creationTimestamp} /> : '-'}
</TableData>
<TableData className={tableColumnClasses[5]}>{latestBuild ? duration : '-'}</TableData>
<TableData className={tableColumnClasses[5]}>
{displayDurationInWords(
latestBuild?.status?.startTimestamp,
latestBuild?.status?.completionTimestamp,
)}
</TableData>
<TableData className={tableColumnClasses[6]}>
<ResourceKebab actions={menuActions} kind={BuildConfigsReference} resource={obj} />
</TableData>
Expand All @@ -240,7 +243,12 @@ const isBuildNewerThen = (newBuild: K8sResourceKind, prevBuild: K8sResourceKind
const buildStrategy = (buildConfig: K8sResourceKind): BuildStrategyType =>
buildConfig.spec.strategy.type;

const buildStatus = (buildConfig: BuildConfig) => buildConfig?.latestBuild?.status?.phase;
const buildStatus = (buildConfig: BuildConfig) => {
if (buildConfig.latestBuild) {
return buildConfig.latestBuild?.status?.phase;
}
return 'Unknown';
};

export const BuildConfigsList: React.SFC<BuildConfigsListProps> = (props) => {
const { t } = useTranslation();
Expand Down Expand Up @@ -356,7 +364,16 @@ export const BuildConfigsPage: React.FC<BuildConfigsPageProps> = (props) => {
{ id: BuildStrategyType.Custom, title: t('public~Custom') },
];

const statusFilters = allPhases.map((phase) => ({ id: phase, title: phase }));
const statusFilters = [
{ id: 'New', title: t('public~New') },
{ id: 'Pending', title: t('public~Pending') },
{ id: 'Running', title: t('public~Running') },
{ id: 'Complete', title: t('public~Complete') },
{ id: 'Failed', title: t('public~Failed') },
{ id: 'Error', title: t('public~Error') },
{ id: 'Cancelled', title: t('public~Cancelled') },
{ id: 'Unknown', title: t('public~Unknown') },
];

const filters = [
{
Expand All @@ -371,7 +388,7 @@ export const BuildConfigsPage: React.FC<BuildConfigsPageProps> = (props) => {
reducer: buildStatus,
items: statusFilters,
filter: (filterValue, build: BuildConfig): boolean => {
const status = build?.latestBuild?.status?.phase;
const status = build?.latestBuild?.status?.phase ?? 'Unknown';
return !filterValue.selected?.length || (status && filterValue.selected.includes(status));
},
},
Expand Down
13 changes: 8 additions & 5 deletions frontend/public/locales/en/public.json
Expand Up @@ -75,6 +75,14 @@
"JenkinsPipeline": "JenkinsPipeline",
"Source": "Source",
"Custom": "Custom",
"New": "New",
"Pending": "Pending",
"Running": "Running",
"Complete": "Complete",
"Failed": "Failed",
"Error": "Error",
"Cancelled": "Cancelled",
"Unknown": "Unknown",
"Build strategy": "Build strategy",
"BuildRun status": "BuildRun status",
"Pipeline build logs are available through Jenkins (linked below)": "Pipeline build logs are available through Jenkins (linked below)",
Expand Down Expand Up @@ -125,7 +133,6 @@
"Degraded": "Degraded",
"Cannot update": "Cannot update",
"Unavailable": "Unavailable",
"Unknown": "Unknown",
"versions": "versions",
"ClusterOperator details": "ClusterOperator details",
"Conditions": "Conditions",
Expand Down Expand Up @@ -522,7 +529,6 @@
"There was an error verifying your session. Please log out and try again.": "There was an error verifying your session. Please log out and try again.",
"There was an error logging you out. Please try again.": "There was an error logging you out. Please try again.",
"There was an authentication error with the system. Please try again or contact support.": "There was an authentication error with the system. Please try again or contact support.",
"Error": "Error",
"Oh no! Something went wrong.": "Oh no! Something went wrong.",
"Page Not Found (404)": "Page Not Found (404)",
"404: Page Not Found": "404: Page Not Found",
Expand Down Expand Up @@ -947,7 +953,6 @@
"Tolerations": "Tolerations",
"Operator": "Operator",
"Firing": "Firing",
"Pending": "Pending",
"Silenced": "Silenced",
"Not Firing": "Not Firing",
"Active": "Active",
Expand Down Expand Up @@ -1360,9 +1365,7 @@
"Image pull secret": "Image pull secret",
"Pod details": "Pod details",
"Init containers": "Init containers",
"Running": "Running",
"CrashLoopBackOff": "CrashLoopBackOff",
"Failed": "Failed",
"Create Pod": "Create Pod",
"Service monitor selector": "Service monitor selector",
"Promethesuses": "Promethesuses",
Expand Down

0 comments on commit 00731e4

Please sign in to comment.