Skip to content

Commit

Permalink
Merge pull request #13020 from vikram-raj/ocpbugs-11620
Browse files Browse the repository at this point in the history
OCPBUGS-11620: Fix stop PLR option
  • Loading branch information
openshift-merge-robot committed Jul 18, 2023
2 parents a8bf6d2 + 9a1ea80 commit a6b01e2
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { usePipelineTechPreviewBadge } from '../../utils/hooks';
import { getPipelineRunKebabActions } from '../../utils/pipeline-actions';
import { pipelineRunStatus } from '../../utils/pipeline-filter-reducer';
import { useDevPipelinesBreadcrumbsFor } from '../pipelines/hooks';
import { usePipelineOperatorVersion } from '../pipelines/utils/pipeline-operator';
import { PipelineRunDetails } from './detail-page-tabs/PipelineRunDetails';
import { PipelineRunLogsWithActiveTask } from './detail-page-tabs/PipelineRunLogs';
import TaskRuns from './detail-page-tabs/TaskRuns';
Expand All @@ -14,8 +15,9 @@ import { useMenuActionsWithUserAnnotation } from './triggered-by';

const PipelineRunDetailsPage: React.FC<DetailsPageProps> = (props) => {
const { kindObj, match } = props;
const operatorVersion = usePipelineOperatorVersion(props.namespace);
const menuActions: KebabAction[] = useMenuActionsWithUserAnnotation(
getPipelineRunKebabActions(true),
getPipelineRunKebabActions(operatorVersion, true),
);
const breadcrumbsFor = useDevPipelinesBreadcrumbsFor(kindObj, match);
const badge = usePipelineTechPreviewBadge(props.namespace);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as React from 'react';
import { shallow, ShallowWrapper } from 'enzyme';
import { SemVer } from 'semver';
import { DetailsPage } from '@console/internal/components/factory';
import { referenceForModel } from '@console/internal/module/k8s';
import { PipelineRunModel } from '../../../models';
Expand Down Expand Up @@ -32,7 +33,7 @@ describe('PipelineRunDetailsPage:', () => {
},
},
};
menuActions.mockReturnValue([getPipelineRunKebabActions(true)]);
menuActions.mockReturnValue([getPipelineRunKebabActions(new SemVer('1.9.0'), true)]);
breadCrumbs.mockReturnValue([{ label: 'PipelineRuns' }, { label: 'PipelineRuns Details' }]);
wrapper = shallow(<PipelineRunDetailsPage {...pipelineRunDetailsPageProps} />);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,17 @@ import { Table } from '@console/internal/components/factory';
import { useUserSettings } from '@console/shared/src';
import { PREFERRED_DEV_PIPELINE_PAGE_TAB_USER_SETTING_KEY } from '../../../const';
import { PipelineRunModel } from '../../../models';
import { usePipelineOperatorVersion } from '../../pipelines/utils/pipeline-operator';
import PipelineRunHeader from './PipelineRunHeader';
import PipelineRunRow from './PipelineRunRow';

export const PipelineRunList: React.FC = (props) => {
const { t } = useTranslation();
type PipelineRunListProps = {
namespace: string;
};

export const PipelineRunList: React.FC<PipelineRunListProps> = (props) => {
const { t } = useTranslation();
const operatorVersion = usePipelineOperatorVersion(props.namespace);
const activePerspective = useActivePerspective()[0];
const [, setPreferredTab, preferredTabLoaded] = useUserSettings<string>(
PREFERRED_DEV_PIPELINE_PAGE_TAB_USER_SETTING_KEY,
Expand All @@ -37,6 +42,7 @@ export const PipelineRunList: React.FC = (props) => {
defaultSortOrder={SortByDirection.desc}
Header={PipelineRunHeader}
Row={PipelineRunRow}
customData={operatorVersion}
virtualize
/>
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@ const PLRStatus: React.FC<PLRStatusProps> = ({ obj }) => {
);
};

const PipelineRunRow: React.FC<RowFunctionArgs<PipelineRunKind>> = ({ obj }) => {
const PipelineRunRow: React.FC<RowFunctionArgs<PipelineRunKind>> = ({
obj,
customData: operatorVersion,
}) => {
return (
<>
<TableData className={tableColumnClasses[0]}>
Expand All @@ -57,7 +60,7 @@ const PipelineRunRow: React.FC<RowFunctionArgs<PipelineRunKind>> = ({ obj }) =>
<TableData className={tableColumnClasses[5]}>{pipelineRunDuration(obj)}</TableData>
<TableData className={tableColumnClasses[6]}>
<ResourceKebabWithUserLabel
actions={getPipelineRunKebabActions()}
actions={getPipelineRunKebabActions(operatorVersion)}
kind={pipelinerunReference}
resource={obj}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,17 @@ import { SortByDirection } from '@patternfly/react-table';
import { useTranslation } from 'react-i18next';
import { Table } from '@console/internal/components/factory';
import { PipelineRunModel } from '../../models';
import { usePipelineOperatorVersion } from '../pipelines/utils/pipeline-operator';
import RepositoryPipelineRunHeader from './RepositoryPipelineRunHeader';
import RepositoryPipelineRunRow from './RepositoryPipelineRunRow';

export const RepositoryPipelineRunList: React.FC = (props) => {
const { t } = useTranslation();
type RepositoryPipelineRunListProps = {
namespace: string;
};

export const RepositoryPipelineRunList: React.FC<RepositoryPipelineRunListProps> = (props) => {
const { t } = useTranslation();
const operatorVersion = usePipelineOperatorVersion(props.namespace);
return (
<Table
{...props}
Expand All @@ -17,6 +22,7 @@ export const RepositoryPipelineRunList: React.FC = (props) => {
defaultSortOrder={SortByDirection.desc}
Header={RepositoryPipelineRunHeader}
Row={RepositoryPipelineRunRow}
customData={operatorVersion}
virtualize
/>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,10 @@ const PLRStatus: React.FC<PLRStatusProps> = ({ obj }) => {
);
};

const RepositoryPipelineRunRow: React.FC<RowFunctionArgs<PipelineRunKind>> = ({ obj }) => {
const RepositoryPipelineRunRow: React.FC<RowFunctionArgs<PipelineRunKind>> = ({
obj,
customData,
}) => {
const plrLabels = obj.metadata.labels;
const plrAnnotations = obj.metadata.annotations;

Expand Down Expand Up @@ -97,7 +100,7 @@ const RepositoryPipelineRunRow: React.FC<RowFunctionArgs<PipelineRunKind>> = ({
</TableData>
<TableData className={tableColumnClasses[8]}>
<ResourceKebabWithUserLabel
actions={getPipelineRunKebabActions()}
actions={getPipelineRunKebabActions(customData)}
kind={pipelinerunReference}
resource={obj}
/>
Expand Down
19 changes: 15 additions & 4 deletions frontend/packages/pipelines-plugin/src/utils/pipeline-actions.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import i18n from 'i18next';
import * as _ from 'lodash';
import { SemVer } from 'semver';
import { errorModal } from '@console/internal/components/modals';
import {
history,
Expand Down Expand Up @@ -177,7 +178,11 @@ export const rerunPipelineRunAndRedirect: KebabAction = (
});
};

export const stopPipelineRun: KebabAction = (kind: K8sKind, pipelineRun: PipelineRunKind) => {
export const stopPipelineRun: KebabAction = (
kind: K8sKind,
pipelineRun: PipelineRunKind,
operatorVersion: SemVer,
) => {
// The returned function will be called using the 'kind' and 'obj' in Kebab Actions
return {
// t('pipelines-plugin~Stop')
Expand All @@ -194,7 +199,10 @@ export const stopPipelineRun: KebabAction = (kind: K8sKind, pipelineRun: Pipelin
{
op: 'replace',
path: `/spec/status`,
value: 'StoppedRunFinally',
value:
operatorVersion.major === 1 && operatorVersion.minor < 9
? 'PipelineRunCancelled'
: 'StoppedRunFinally',
},
],
);
Expand Down Expand Up @@ -297,11 +305,14 @@ export const getPipelineKebabActions = (
Kebab.factory.Delete,
];

export const getPipelineRunKebabActions = (redirectReRun?: boolean): KebabAction[] => [
export const getPipelineRunKebabActions = (
operatorVersion: SemVer,
redirectReRun?: boolean,
): KebabAction[] => [
redirectReRun
? (model, pipelineRun) => rerunPipelineRunAndRedirect(model, pipelineRun)
: (model, pipelineRun) => reRunPipelineRun(model, pipelineRun),
(model, pipelineRun) => stopPipelineRun(model, pipelineRun),
(model, pipelineRun) => stopPipelineRun(model, pipelineRun, operatorVersion),
(model, pipelineRun) => cancelPipelineRunFinally(model, pipelineRun),
Kebab.factory.Delete,
];
Expand Down

0 comments on commit a6b01e2

Please sign in to comment.