Skip to content

Commit 0d90717

Browse files
committed
Resolves: MTV-3380 | fix comment from jpuzz0
Signed-off-by: Aviv Turgeman <aturgema@redhat.com>
1 parent ad54fcf commit 0d90717

File tree

10 files changed

+41
-49
lines changed

10 files changed

+41
-49
lines changed

src/components/AffinityModal/AffinityModal.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
import { useState } from 'react';
22

33
import ModalForm from '@components/ModalForm/ModalForm';
4-
import type {
5-
K8sIoApiCoreV1Affinity,
6-
K8sResourceCommon,
7-
V1beta1PlanSpecConvertorAffinity,
8-
V1beta1PlanSpecTargetAffinity,
9-
} from '@forklift-ui/types';
4+
import type { K8sIoApiCoreV1Affinity, K8sResourceCommon } from '@forklift-ui/types';
105
import type { ModalComponent } from '@openshift-console/dynamic-plugin-sdk/lib/app/modal-support/ModalProvider';
116
import { ModalVariant } from '@patternfly/react-core';
127
import { isEmpty } from '@utils/helpers';
@@ -24,7 +19,7 @@ import AffinityList from './AffinityList';
2419
export type AffinityModalProps = {
2520
title?: string;
2621
onConfirm: (updatedAffinity: K8sIoApiCoreV1Affinity) => Promise<K8sResourceCommon>;
27-
initialAffinity: V1beta1PlanSpecConvertorAffinity | V1beta1PlanSpecTargetAffinity | undefined;
22+
initialAffinity: K8sIoApiCoreV1Affinity | undefined;
2823
};
2924

3025
const AffinityModal: ModalComponent<AffinityModalProps> = ({
@@ -36,7 +31,7 @@ const AffinityModal: ModalComponent<AffinityModalProps> = ({
3631
const { t } = useForkliftTranslation();
3732

3833
const [affinities, setAffinities] = useState<AffinityRowData[]>(
39-
affinityToRowsData((initialAffinity as V1beta1PlanSpecTargetAffinity) ?? {}),
34+
affinityToRowsData(initialAffinity ?? {}),
4035
);
4136
const [isEditing, setIsEditing] = useState(false);
4237
const [isCreating, setIsCreating] = useState(false);

src/components/AffinityModal/utils/affinityToRowsData.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import type {
2+
K8sIoApiCoreV1Affinity,
3+
K8sIoApiCoreV1NodeAffinity,
24
K8sIoApiCoreV1PodAffinity,
35
K8sIoApiCoreV1PodAntiAffinity,
46
K8sIoApimachineryPkgApisMetaV1LabelSelectorRequirement,
5-
V1beta1PlanSpecTargetAffinity,
6-
V1beta1PlanSpecTargetAffinityNodeAffinity,
77
} from '@forklift-ui/types';
88

99
import { AffinityCondition, type AffinityRowData, AffinityType } from './types';
@@ -13,7 +13,7 @@ const setIDsToEntity = (
1313
) => entity?.map((elm, index) => ({ ...elm, id: index }));
1414

1515
const getNodeAffinityRows = (
16-
nodeAffinity: V1beta1PlanSpecTargetAffinityNodeAffinity | undefined,
16+
nodeAffinity: K8sIoApiCoreV1NodeAffinity | undefined,
1717
): AffinityRowData[] => {
1818
const requiredTerms =
1919
nodeAffinity?.requiredDuringSchedulingIgnoredDuringExecution?.nodeSelectorTerms ?? [];
@@ -68,7 +68,7 @@ const getPodLikeAffinityRows = (
6868
return [...required, ...preferred] as AffinityRowData[];
6969
};
7070

71-
export const affinityToRowsData = (affinity: V1beta1PlanSpecTargetAffinity): AffinityRowData[] => [
71+
export const affinityToRowsData = (affinity: K8sIoApiCoreV1Affinity): AffinityRowData[] => [
7272
...getNodeAffinityRows(affinity?.nodeAffinity),
7373
...getPodLikeAffinityRows(affinity?.podAffinity),
7474
...getPodLikeAffinityRows(affinity?.podAntiAffinity, true),

src/components/AffinityViewDetailsItemContent/AffinityViewDetailsItemContent.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
import type { FC } from 'react';
22

3-
import type {
4-
V1beta1PlanSpecConvertorAffinity,
5-
V1beta1PlanSpecTargetAffinity,
6-
} from '@forklift-ui/types';
3+
import type { K8sIoApiCoreV1Affinity } from '@forklift-ui/types';
74
import { Label } from '@patternfly/react-core';
85
import { useForkliftTranslation } from '@utils/i18n';
96

107
import { getAffinityRules } from './utils/getAffinityRules';
118

129
type AffinityViewDetailsItemContentProps = {
13-
affinity: V1beta1PlanSpecConvertorAffinity | V1beta1PlanSpecTargetAffinity | undefined;
10+
affinity: K8sIoApiCoreV1Affinity | undefined;
1411
};
1512

1613
const AffinityViewDetailsItemContent: FC<AffinityViewDetailsItemContentProps> = ({ affinity }) => {

src/components/AffinityViewDetailsItemContent/utils/getAffinityRules.ts

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,22 @@
11
import type {
2-
V1beta1PlanSpecConvertorAffinity,
3-
V1beta1PlanSpecTargetAffinity,
4-
V1beta1PlanSpecTargetAffinityNodeAffinity,
5-
V1beta1PlanSpecTargetAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution,
6-
V1beta1PlanSpecTargetAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms,
7-
} from '@forklift-ui/types';
8-
import type {
2+
K8sIoApiCoreV1Affinity,
3+
K8sIoApiCoreV1NodeAffinity,
4+
K8sIoApiCoreV1NodeSelectorTerm,
95
K8sIoApiCoreV1PodAffinity,
106
K8sIoApiCoreV1PodAffinityTerm,
117
K8sIoApiCoreV1PodAntiAffinity,
8+
K8sIoApiCoreV1PreferredSchedulingTerm,
129
K8sIoApiCoreV1WeightedPodAffinityTerm,
1310
} from '@forklift-ui/types';
1411

15-
type PlanAffinity = V1beta1PlanSpecConvertorAffinity | V1beta1PlanSpecTargetAffinity;
16-
1712
enum AffinityCondition {
1813
preferred = 'preferredDuringSchedulingIgnoredDuringExecution',
1914
required = 'requiredDuringSchedulingIgnoredDuringExecution',
2015
}
2116

2217
const getNodeAffinity = (
23-
nodeAffinity: V1beta1PlanSpecTargetAffinityNodeAffinity | undefined,
24-
): (
25-
| V1beta1PlanSpecTargetAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution
26-
| V1beta1PlanSpecTargetAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms
27-
)[] => {
18+
nodeAffinity: K8sIoApiCoreV1NodeAffinity | undefined,
19+
): (K8sIoApiCoreV1PreferredSchedulingTerm | K8sIoApiCoreV1NodeSelectorTerm)[] => {
2820
return [
2921
...(nodeAffinity?.[AffinityCondition.preferred] ?? []),
3022
...(nodeAffinity?.[AffinityCondition.required]?.nodeSelectorTerms ?? []),
@@ -41,16 +33,14 @@ const getPodAffinity = (
4133
};
4234

4335
export const getAffinityRules = (
44-
affinity: PlanAffinity | undefined,
36+
affinity: K8sIoApiCoreV1Affinity | undefined,
4537
): (
46-
| V1beta1PlanSpecTargetAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution
38+
| K8sIoApiCoreV1NodeSelectorTerm
4739
| K8sIoApiCoreV1PodAffinityTerm
48-
| V1beta1PlanSpecTargetAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms
40+
| K8sIoApiCoreV1PreferredSchedulingTerm
4941
| K8sIoApiCoreV1WeightedPodAffinityTerm
5042
)[] => {
51-
const nodeAffinity = getNodeAffinity(
52-
affinity?.nodeAffinity as V1beta1PlanSpecTargetAffinityNodeAffinity | undefined,
53-
);
43+
const nodeAffinity = getNodeAffinity(affinity?.nodeAffinity);
5444
const podAffinity = getPodAffinity(affinity?.podAffinity);
5545
const podAntiAffinity = getPodAffinity(affinity?.podAntiAffinity);
5646
return [...nodeAffinity, ...podAffinity, ...podAntiAffinity];

src/plans/details/tabs/Details/components/SettingsSection/components/ConvertorAffinity/ConvertorAffinityDetailsItem.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type { FC } from 'react';
2-
import { DetailsItem } from 'src/components/DetailItems/DetailItem';
32
import { isPlanEditable } from 'src/plans/details/components/PlanStatus/utils/utils';
4-
import { useForkliftTranslation } from 'src/utils/i18n';
53

64
import AffinityModal, { type AffinityModalProps } from '@components/AffinityModal/AffinityModal';
75
import AffinityViewDetailsItemContent from '@components/AffinityViewDetailsItemContent/AffinityViewDetailsItemContent';
6+
import { DetailsItem } from '@components/DetailItems/DetailItem';
87
import type { K8sIoApiCoreV1Affinity, V1beta1Plan } from '@forklift-ui/types';
98
import { useModal } from '@openshift-console/dynamic-plugin-sdk';
9+
import { useForkliftTranslation } from '@utils/i18n';
1010
import { DOC_MAIN_HELP_LINK } from '@utils/links';
1111

1212
import type { EditableDetailsItemProps } from '../../../utils/types';
@@ -40,13 +40,17 @@ const ConvertorAffinityDetailsItem: FC<EditableDetailsItemProps> = ({
4040
<DetailsItem
4141
testId="convertor-affinity-rules-detail-item"
4242
title={t('Convertor pod affinity rules')}
43-
content={<AffinityViewDetailsItemContent affinity={plan?.spec?.convertorAffinity} />}
43+
content={
44+
<AffinityViewDetailsItemContent
45+
affinity={plan?.spec?.convertorAffinity as K8sIoApiCoreV1Affinity}
46+
/>
47+
}
4448
helpContent={description}
4549
crumbs={['spec', 'convertorAffinity']}
4650
moreInfoLink={DOC_MAIN_HELP_LINK}
4751
onEdit={() => {
4852
launcher<AffinityModalProps>(AffinityModal, {
49-
initialAffinity: plan?.spec?.convertorAffinity,
53+
initialAffinity: plan?.spec?.convertorAffinity as K8sIoApiCoreV1Affinity,
5054
onConfirm,
5155
title: t('Edit convertor pod affinity rules'),
5256
});

src/plans/details/tabs/Details/components/SettingsSection/components/ConvertorLabels/ConvertorLabelsDetailsItem.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import type { FC } from 'react';
2-
import { DetailsItem } from 'src/components/DetailItems/DetailItem';
32
import { isPlanEditable } from 'src/plans/details/components/PlanStatus/utils/utils';
4-
import { ForkliftTrans, useForkliftTranslation } from 'src/utils/i18n';
53

4+
import { DetailsItem } from '@components/DetailItems/DetailItem';
65
import LabelsModal, { type LabelsModalProps } from '@components/LabelsModal/LabelsModal';
76
import LabelsViewDetailsItemContent from '@components/LabelsViewDetailsItemContent/LabelsViewDetailsItemContent';
87
import type { V1beta1Plan } from '@forklift-ui/types';
98
import { useModal } from '@openshift-console/dynamic-plugin-sdk';
109
import { Stack, StackItem } from '@patternfly/react-core';
10+
import { ForkliftTrans, useForkliftTranslation } from '@utils/i18n';
1111
import { DOC_MAIN_HELP_LINK } from '@utils/links';
1212

1313
import type { EditableDetailsItemProps } from '../../../utils/types';

src/plans/details/tabs/Details/components/SettingsSection/components/ConvertorNodeSelector/ConvertorNodeSelectorDetailsItem.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import type { FC } from 'react';
2-
import { DetailsItem } from 'src/components/DetailItems/DetailItem';
32
import { isPlanEditable } from 'src/plans/details/components/PlanStatus/utils/utils';
4-
import { ForkliftTrans, useForkliftTranslation } from 'src/utils/i18n';
53

4+
import { DetailsItem } from '@components/DetailItems/DetailItem';
65
import NodeSelectorModal, {
76
type NodeSelectorModalProps,
87
} from '@components/NodeSelectorModal/NodeSelectorModal';
@@ -11,6 +10,8 @@ import type { V1beta1Plan } from '@forklift-ui/types';
1110
import { useModal } from '@openshift-console/dynamic-plugin-sdk';
1211
import { Stack, StackItem } from '@patternfly/react-core';
1312
import { isEmpty } from '@utils/helpers';
13+
import { ForkliftTrans, useForkliftTranslation } from '@utils/i18n';
14+
import { DOC_MAIN_HELP_LINK } from '@utils/links';
1415

1516
import type { EditableDetailsItemProps } from '../../../utils/types';
1617
import { patchPlanSpec } from '../../utils/patchPlanSpec';
@@ -46,6 +47,7 @@ const ConvertorNodeSelectorDetailsItem: FC<EditableDetailsItemProps> = ({
4647
content={<NodeSelectorViewDetailsItemContent labels={plan?.spec?.convertorNodeSelector} />}
4748
helpContent={description}
4849
crumbs={['spec', 'convertorNodeSelector']}
50+
moreInfoLink={DOC_MAIN_HELP_LINK}
4951
onEdit={() => {
5052
launcher<NodeSelectorModalProps>(NodeSelectorModal, {
5153
description: (

src/plans/details/tabs/Details/components/SettingsSection/components/TargetAffinity/TargetAffinityDetailsItem.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,17 @@ const TargetAffinityDetailsItem: FC<EditableDetailsItemProps> = ({ canPatch, pla
3333
<DetailsItem
3434
testId="vm-target-affinity-rules-detail-item"
3535
title={t('VM target affinity rules')}
36-
content={<AffinityViewDetailsItemContent affinity={plan?.spec?.targetAffinity} />}
36+
content={
37+
<AffinityViewDetailsItemContent
38+
affinity={plan?.spec?.targetAffinity as K8sIoApiCoreV1Affinity}
39+
/>
40+
}
3741
helpContent={TARGET_AFFINITY_DETAILS_ITEM_DESCRIPTION}
3842
crumbs={['spec', 'targetAffinity']}
3943
moreInfoLink={DOC_MAIN_HELP_LINK}
4044
onEdit={() => {
4145
launcher<AffinityModalProps>(AffinityModal, {
42-
initialAffinity: plan?.spec?.targetAffinity,
46+
initialAffinity: plan?.spec?.targetAffinity as K8sIoApiCoreV1Affinity,
4347
onConfirm,
4448
title: t('Edit VM target affinity rules'),
4549
});

src/plans/details/tabs/Details/components/SettingsSection/utils/patchPlanSpec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export const patchPlanSpec = async <T>({
1515
path,
1616
plan,
1717
}: PatchPlanSpecParams<T>): Promise<V1beta1Plan> => {
18-
const op = currentValue ? REPLACE : ADD;
18+
const op = currentValue === undefined ? ADD : REPLACE;
1919

2020
return k8sPatch({
2121
data: [{ op, path, value: newValue }],

testing/playwright/e2e/downstream/plans/plan-convertor-scheduling.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const setupPlanDetailsPage = async (page: Page, testPlan: TestPlan | undefined)
1414
const { name: planName, namespace } = testPlan.metadata;
1515
await planDetailsPage.navigate(planName, namespace);
1616
await planDetailsPage.verifyPlanTitle(planName);
17-
return { planDetailsPage, planName, namespace, testData: testPlan.testData };
17+
return { planDetailsPage };
1818
};
1919

2020
test.describe('Plan Details - Convertor Pod Labels', { tag: '@downstream' }, () => {

0 commit comments

Comments
 (0)