@openshift-assisted/ui-lib 2.37.2 → 2.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts +1 -1
- package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
- package/build/@types/cim/components/common/constants.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/toAssisted.d.ts.map +1 -1
- package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
- package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts +1 -0
- package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts.map +1 -1
- package/build/@types/common/api/assisted-service/BundleAPI.d.ts +8 -0
- package/build/@types/common/api/assisted-service/BundleAPI.d.ts.map +1 -0
- package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts +6 -0
- package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts.map +1 -0
- package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts +7 -0
- package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -0
- package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts +2 -1
- package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/types.d.ts +3 -1
- package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
- package/build/@types/common/components/hosts/HostRowDetail.d.ts.map +1 -1
- package/build/@types/common/components/storage/DisksTable.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts +6 -0
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/config/docs_links.d.ts +1 -1
- package/build/@types/common/config/docs_links.d.ts.map +1 -1
- package/build/@types/common/selectors/clusterSelectors.d.ts +1 -0
- package/build/@types/common/selectors/clusterSelectors.d.ts.map +1 -1
- package/build/@types/common/types/clusters.d.ts +8 -0
- package/build/@types/common/types/clusters.d.ts.map +1 -1
- package/build/@types/common/types/ui-settings.d.ts +1 -0
- package/build/@types/common/types/ui-settings.d.ts.map +1 -1
- package/build/@types/ocm/components/SentryErrorMonitorContextProvider.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageModal.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts +10 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts +7 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts +5 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts +5 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts +5 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts +24 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/OperatorsStep.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +1 -1
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
- package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
- package/build/@types/ocm/config/constants.d.ts +2 -0
- package/build/@types/ocm/config/constants.d.ts.map +1 -1
- package/build/@types/ocm/sentry.d.ts +2 -2
- package/build/@types/ocm/sentry.d.ts.map +1 -1
- package/build/@types/ocm/services/BundleService.d.ts +6 -0
- package/build/@types/ocm/services/BundleService.d.ts.map +1 -0
- package/build/@types/ocm/services/ClustersService.d.ts +1 -0
- package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
- package/build/@types/ocm/services/OperatorsService.d.ts +1 -0
- package/build/@types/ocm/services/OperatorsService.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +1 -0
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +4 -5
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js +1 -1
- package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js.map +1 -1
- package/build/cjs/cim/components/common/constants.js +1 -1
- package/build/cjs/cim/components/common/constants.js.map +1 -1
- package/build/cjs/cim/components/helpers/toAssisted.js +2 -1
- package/build/cjs/cim/components/helpers/toAssisted.js.map +1 -1
- package/build/cjs/cim/components/modals/AddHostModal.js +4 -5
- package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
- package/build/cjs/common/api/assisted-service/BundleAPI.js +16 -0
- package/build/cjs/common/api/assisted-service/BundleAPI.js.map +1 -0
- package/build/cjs/common/api/assisted-service/OperatorsAPI.js +13 -0
- package/build/cjs/common/api/assisted-service/OperatorsAPI.js.map +1 -0
- package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js +41 -0
- package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -0
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -5
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js +5 -5
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DownloadIso.js +6 -2
- package/build/cjs/common/components/clusterConfiguration/DownloadIso.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +2 -2
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/common/components/hosts/AITableMemo.js +16 -13
- package/build/cjs/common/components/hosts/AITableMemo.js.map +1 -1
- package/build/cjs/common/components/hosts/HostRowDetail.js +35 -1
- package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
- package/build/cjs/common/components/storage/DisksTable.js +16 -10
- package/build/cjs/common/components/storage/DisksTable.js.map +1 -1
- package/build/cjs/common/config/constants.js +12 -1
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/config/docs_links.js +1 -1
- package/build/cjs/common/config/docs_links.js.map +1 -1
- package/build/cjs/common/selectors/clusterSelectors.js +7 -1
- package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
- package/build/cjs/common/types/clusters.js.map +1 -1
- package/build/cjs/ocm/components/SentryErrorMonitorContextProvider.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +10 -9
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.js +14 -1
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +2 -2
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js +29 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js +3 -20
- package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js +29 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js +5 -21
- package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js +6 -7
- package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js +8 -13
- package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js +30 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js +48 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js +29 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js +29 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js +7 -18
- package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js +4 -17
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js +3 -12
- package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js +29 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js +29 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js +29 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js +73 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js +1 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +4 -0
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js +9 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js +209 -22
- package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +1 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +40 -0
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
- package/build/cjs/ocm/config/constants.js +155 -1
- package/build/cjs/ocm/config/constants.js.map +1 -1
- package/build/cjs/ocm/sentry.js +1 -1
- package/build/cjs/ocm/sentry.js.map +1 -1
- package/build/cjs/ocm/services/BundleService.js +20 -0
- package/build/cjs/ocm/services/BundleService.js.map +1 -0
- package/build/cjs/ocm/services/ClustersService.js +33 -1
- package/build/cjs/ocm/services/ClustersService.js.map +1 -1
- package/build/cjs/ocm/services/OperatorsService.js +16 -8
- package/build/cjs/ocm/services/OperatorsService.js.map +1 -1
- package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +4 -6
- package/lib/cim/components/InfraEnv/OpenshiftVersionDropdown.tsx +1 -1
- package/lib/cim/components/common/constants.ts +1 -2
- package/lib/cim/components/helpers/toAssisted.ts +1 -0
- package/lib/cim/components/modals/AddHostModal.tsx +4 -5
- package/lib/cim/types/k8s/infra-env-k8s-resource.ts +1 -0
- package/lib/common/api/assisted-service/BundleAPI.ts +18 -0
- package/lib/common/api/assisted-service/OperatorsAPI.ts +13 -0
- package/lib/common/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +93 -0
- package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +10 -12
- package/lib/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.tsx +9 -9
- package/lib/common/components/clusterConfiguration/DownloadIso.tsx +9 -1
- package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +1 -1
- package/lib/common/components/clusterWizard/types.ts +4 -2
- package/lib/common/components/hosts/AITableMemo.tsx +1 -1
- package/lib/common/components/hosts/HostRowDetail.tsx +71 -1
- package/lib/common/components/storage/DisksTable.tsx +25 -18
- package/lib/common/config/constants.ts +12 -0
- package/lib/common/config/docs_links.ts +1 -1
- package/lib/common/selectors/clusterSelectors.ts +8 -0
- package/lib/common/types/clusters.ts +8 -0
- package/lib/common/types/ui-settings.ts +1 -0
- package/lib/ocm/components/SentryErrorMonitorContextProvider.tsx +1 -2
- package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +13 -12
- package/lib/ocm/components/clusterConfiguration/DiscoveryImageModal.tsx +24 -1
- package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.tsx +63 -0
- package/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx +7 -31
- package/lib/ocm/components/clusterConfiguration/operators/LsoCheckbox.tsx +63 -0
- package/lib/ocm/components/clusterConfiguration/operators/LvmCheckbox.tsx +8 -26
- package/lib/ocm/components/clusterConfiguration/operators/MceCheckbox.tsx +10 -3
- package/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx +23 -12
- package/lib/ocm/components/clusterConfiguration/operators/NmstateCheckbox.tsx +76 -0
- package/lib/ocm/components/clusterConfiguration/operators/NmstateRequirements.tsx +53 -0
- package/lib/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.tsx +66 -0
- package/lib/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.tsx +63 -0
- package/lib/ocm/components/clusterConfiguration/operators/OdfCheckbox.tsx +20 -25
- package/lib/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.tsx +11 -24
- package/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx +10 -25
- package/lib/ocm/components/clusterConfiguration/operators/PipelinesChekbox.tsx +64 -0
- package/lib/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.tsx +63 -0
- package/lib/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.tsx +63 -0
- package/lib/ocm/components/clusterConfiguration/operators/SupportedOperators.tsx +105 -0
- package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.tsx +1 -1
- package/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +1 -1
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +4 -0
- package/lib/ocm/components/clusterWizard/Operators.tsx +21 -1
- package/lib/ocm/components/clusterWizard/OperatorsStep.tsx +374 -38
- package/lib/ocm/components/clusterWizard/wizardTransition.ts +1 -1
- package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +40 -0
- package/lib/ocm/config/constants.ts +156 -0
- package/lib/ocm/sentry.ts +2 -1
- package/lib/ocm/services/BundleService.ts +14 -0
- package/lib/ocm/services/ClustersService.ts +39 -2
- package/lib/ocm/services/OperatorsService.tsx +21 -10
- package/package.json +3 -3
|
@@ -151,11 +151,10 @@ const DisksTable = ({
|
|
|
151
151
|
.sort((a, b) => {
|
|
152
152
|
const aVal = (a.holders || a.name) as string;
|
|
153
153
|
const bVal = (b.holders || b.name) as string;
|
|
154
|
-
|
|
155
154
|
return aVal?.localeCompare(bVal) || 0;
|
|
156
155
|
})
|
|
157
|
-
.map((disk, index) =>
|
|
158
|
-
|
|
156
|
+
.map((disk, index) => {
|
|
157
|
+
const rowCells = [
|
|
159
158
|
{
|
|
160
159
|
title: (
|
|
161
160
|
<DiskName
|
|
@@ -180,27 +179,34 @@ const DisksTable = ({
|
|
|
180
179
|
props: { 'data-testid': 'disk-role' },
|
|
181
180
|
},
|
|
182
181
|
{ title: <DiskLimitations disk={disk} />, props: { 'data-testid': 'disk-limitations' } },
|
|
183
|
-
isEditable
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
182
|
+
isEditable
|
|
183
|
+
? {
|
|
184
|
+
title: (
|
|
185
|
+
<FormatDiskCheckbox
|
|
186
|
+
host={host}
|
|
187
|
+
diskId={disk.id}
|
|
188
|
+
installationDiskId={installationDiskId}
|
|
189
|
+
index={index}
|
|
190
|
+
updateDiskSkipFormatting={updateDiskSkipFormatting}
|
|
191
|
+
/>
|
|
192
|
+
),
|
|
193
|
+
props: { 'data-testid': 'disk-formatted' },
|
|
194
|
+
}
|
|
195
|
+
: null,
|
|
195
196
|
{ title: disk.driveType, props: { 'data-testid': 'drive-type' } },
|
|
196
197
|
{ title: fileSize(disk.sizeBytes || 0, 2, 'si'), props: { 'data-testid': 'disk-size' } },
|
|
197
198
|
{ title: disk.serial, props: { 'data-testid': 'disk-serial' } },
|
|
198
199
|
{ title: disk.model, props: { 'data-testid': 'disk-model' } },
|
|
199
200
|
{ title: disk.wwn, props: { 'data-testid': 'disk-wwn' } },
|
|
200
|
-
]
|
|
201
|
-
key: disk.path,
|
|
202
|
-
})) as { key: string; cells: { title: string | React.ReactNode; props: object }[] }[];
|
|
201
|
+
].filter(Boolean); // Remove null values to keep alignment
|
|
203
202
|
|
|
203
|
+
return { key: disk.path, cells: rowCells } as {
|
|
204
|
+
key: string;
|
|
205
|
+
cells: { title: string | React.ReactNode; props: object }[];
|
|
206
|
+
};
|
|
207
|
+
});
|
|
208
|
+
// eslint-disable-next-line no-console
|
|
209
|
+
console.log(rows);
|
|
204
210
|
return (
|
|
205
211
|
<Table data-testid={testId} variant={TableVariant.compact} aria-label="Host's disks table">
|
|
206
212
|
<Thead>
|
|
@@ -212,6 +218,7 @@ const DisksTable = ({
|
|
|
212
218
|
</Thead>
|
|
213
219
|
<Tbody>
|
|
214
220
|
{rows.map((row, i) => (
|
|
221
|
+
// eslint-disable-next-line no-console
|
|
215
222
|
<Tr key={`disk-row-${row.key}`} data-testid={`disk-row-${row.key}`}>
|
|
216
223
|
{row.cells.map((cell, j) => (
|
|
217
224
|
<Td key={`cell-${i}-${j}`} {...cell.props}>
|
|
@@ -137,6 +137,7 @@ export const hostValidationLabels = (t: TFunction): { [key in HostValidationId]:
|
|
|
137
137
|
'osc-requirements-satisfied': t('ai:OpenShift sandboxed containers requirements'),
|
|
138
138
|
'mtu-valid': t('ai:MTU requirements'),
|
|
139
139
|
'authorino-requirements-satisfied': '',
|
|
140
|
+
'nmstate-requirements-satisfied': '',
|
|
140
141
|
});
|
|
141
142
|
|
|
142
143
|
export const hostValidationFailureHints = (
|
|
@@ -196,6 +197,7 @@ export const hostValidationFailureHints = (
|
|
|
196
197
|
'osc-requirements-satisfied': '',
|
|
197
198
|
'authorino-requirements-satisfied': '',
|
|
198
199
|
'mtu-valid': '',
|
|
200
|
+
'nmstate-requirements-satisfied': '',
|
|
199
201
|
});
|
|
200
202
|
|
|
201
203
|
export const clusterValidationLabels = (
|
|
@@ -297,6 +299,8 @@ export const OPERATOR_NAME_SERVICEMESH = 'servicemesh';
|
|
|
297
299
|
export const OPERATOR_NAME_SERVERLESS = 'serverless';
|
|
298
300
|
export const OPERATOR_NAME_OPENSHIFT_AI = 'openshift-ai';
|
|
299
301
|
export const OPERATOR_NAME_OSC = 'osc';
|
|
302
|
+
export const OPERATOR_NAME_NMSTATE = 'nmstate';
|
|
303
|
+
export const OPERATOR_NAME_AUTHORINO = 'authorino';
|
|
300
304
|
|
|
301
305
|
const OperatorNames = [
|
|
302
306
|
OPERATOR_NAME_CNV,
|
|
@@ -313,6 +317,8 @@ const OperatorNames = [
|
|
|
313
317
|
OPERATOR_NAME_SERVERLESS,
|
|
314
318
|
OPERATOR_NAME_OPENSHIFT_AI,
|
|
315
319
|
OPERATOR_NAME_OSC,
|
|
320
|
+
OPERATOR_NAME_NMSTATE,
|
|
321
|
+
OPERATOR_NAME_AUTHORINO,
|
|
316
322
|
];
|
|
317
323
|
export const ExposedOperatorNames = [
|
|
318
324
|
OPERATOR_NAME_CNV,
|
|
@@ -328,6 +334,8 @@ export const ExposedOperatorNames = [
|
|
|
328
334
|
OPERATOR_NAME_SERVERLESS,
|
|
329
335
|
OPERATOR_NAME_OPENSHIFT_AI,
|
|
330
336
|
OPERATOR_NAME_OSC,
|
|
337
|
+
OPERATOR_NAME_NMSTATE,
|
|
338
|
+
OPERATOR_NAME_AUTHORINO,
|
|
331
339
|
];
|
|
332
340
|
|
|
333
341
|
export type OperatorName = (typeof OperatorNames)[number];
|
|
@@ -371,9 +379,13 @@ export const operatorLabels = (
|
|
|
371
379
|
[OPERATOR_NAME_OPENSHIFT_AI]: t('ai:OpenShift AI'),
|
|
372
380
|
[OPERATOR_NAME_OSC]: t('ai:OpenShift sandboxed containers'),
|
|
373
381
|
[OPERATOR_NAME_MTV]: t('ai:Migration Toolkit for Virtualization'),
|
|
382
|
+
[OPERATOR_NAME_NMSTATE]: t('ai:NMState'),
|
|
383
|
+
[OPERATOR_NAME_AUTHORINO]: t('ai:Authorino'),
|
|
374
384
|
};
|
|
375
385
|
};
|
|
376
386
|
|
|
377
387
|
export const AI_UI_TAG = 'ui_ocm';
|
|
378
388
|
|
|
379
389
|
export const AI_ASSISTED_MIGRATION_TAG = 'assisted_migration';
|
|
390
|
+
|
|
391
|
+
export const AI_CISCO_INTERSIGHT_TAG = 'cisco_intersight_ui';
|
|
@@ -68,7 +68,7 @@ export const ODF_REQUIREMENTS_LINK =
|
|
|
68
68
|
'https://docs.redhat.com/en/documentation/red_hat_openshift_data_foundation';
|
|
69
69
|
|
|
70
70
|
export const OPENSHIFT_AI_REQUIREMENTS_LINK =
|
|
71
|
-
'https://docs.redhat.com/en/documentation/
|
|
71
|
+
'https://docs.redhat.com/en/documentation/red_hat_openshift_ai_self-managed/2.16/html/installing_and_uninstalling_openshift_ai_self-managed/installing-and-deploying-openshift-ai_install#requirements-for-openshift-ai-self-managed_install';
|
|
72
72
|
|
|
73
73
|
export const OSC_REQUIREMENTS_LINK =
|
|
74
74
|
'https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.8/html/user_guide/deploying-osc-bare-metal#osc-resource-requirements_deploying-bare-metal';
|
|
@@ -122,3 +122,11 @@ export const isClusterPlatformTypeVM = ({ platform }: Pick<Cluster, 'platform'>)
|
|
|
122
122
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
123
123
|
// @ts-ignore
|
|
124
124
|
SupportedPlatformIntegrations.includes(platform?.type ?? 'none');
|
|
125
|
+
|
|
126
|
+
export const numberOfEnabledOperators = (monitoredOperators: Cluster['monitoredOperators']) => {
|
|
127
|
+
return monitoredOperators
|
|
128
|
+
? selectMonitoredOperators(
|
|
129
|
+
monitoredOperators.filter((operator) => operator.operatorType === 'olm'),
|
|
130
|
+
).length
|
|
131
|
+
: 0;
|
|
132
|
+
};
|
|
@@ -66,6 +66,14 @@ export type OperatorsValues = V2ClusterUpdateParams & {
|
|
|
66
66
|
useMigrationToolkitforVirtualization: boolean;
|
|
67
67
|
useOpenShiftAI: boolean;
|
|
68
68
|
useOsc: boolean;
|
|
69
|
+
useNodeFeatureDiscovery: boolean;
|
|
70
|
+
useNmstate: boolean;
|
|
71
|
+
useLso: boolean;
|
|
72
|
+
useServerless: boolean;
|
|
73
|
+
useAuthorino: boolean;
|
|
74
|
+
usePipelines: boolean;
|
|
75
|
+
useServicemesh: boolean;
|
|
76
|
+
useNvidiaGpu: boolean;
|
|
69
77
|
};
|
|
70
78
|
|
|
71
79
|
export type SupportedPlatformType = Extract<PlatformType, 'vsphere' | 'nutanix' | 'external'>;
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
import { handleApiError } from '../../common/api';
|
|
8
8
|
import { isApiError } from '../../common/api/utils';
|
|
9
9
|
import { captureException } from '../sentry';
|
|
10
|
-
import * as Sentry from '@sentry/browser';
|
|
11
10
|
|
|
12
11
|
export const SentryErrorMonitorContextProvider: React.FC = ({ children }) => {
|
|
13
12
|
const exceptionReporter: ExceptionReporter = (
|
|
@@ -18,7 +17,7 @@ export const SentryErrorMonitorContextProvider: React.FC = ({ children }) => {
|
|
|
18
17
|
if (isApiError(error)) {
|
|
19
18
|
handleApiError(error);
|
|
20
19
|
} else {
|
|
21
|
-
captureException(error, message, severity
|
|
20
|
+
captureException(error, message, severity);
|
|
22
21
|
}
|
|
23
22
|
};
|
|
24
23
|
return (
|
|
@@ -8,10 +8,11 @@ import {
|
|
|
8
8
|
useNewFeatureSupportLevel,
|
|
9
9
|
} from '../../../common/components/newFeatureSupportLevels';
|
|
10
10
|
import OcmSNODisclaimer from './OcmSNODisclaimer';
|
|
11
|
+
import toNumber from 'lodash-es/toNumber';
|
|
11
12
|
|
|
12
13
|
const INPUT_NAME = 'controlPlaneCount';
|
|
13
14
|
const fieldId = getFieldId(INPUT_NAME, 'input');
|
|
14
|
-
const DEFAULT_VALUE =
|
|
15
|
+
const DEFAULT_VALUE = 3;
|
|
15
16
|
|
|
16
17
|
export const ControlPlaneNodesLabel = () => {
|
|
17
18
|
return (
|
|
@@ -31,7 +32,7 @@ export const ControlPlaneNodesLabel = () => {
|
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
interface ControlPlaneNodesOption {
|
|
34
|
-
value:
|
|
35
|
+
value: number;
|
|
35
36
|
label: string;
|
|
36
37
|
}
|
|
37
38
|
|
|
@@ -40,10 +41,10 @@ interface ControlPlaneNodesDropdownProps {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
const isDropdownItemEnabled = (
|
|
43
|
-
controlPlaneNodeCount:
|
|
44
|
+
controlPlaneNodeCount: number,
|
|
44
45
|
isNonStandardControlPlaneEnabled: boolean,
|
|
45
46
|
): boolean => {
|
|
46
|
-
if (controlPlaneNodeCount ===
|
|
47
|
+
if (controlPlaneNodeCount === 4 || controlPlaneNodeCount === 5) {
|
|
47
48
|
return isNonStandardControlPlaneEnabled;
|
|
48
49
|
}
|
|
49
50
|
return true;
|
|
@@ -52,7 +53,7 @@ const isDropdownItemEnabled = (
|
|
|
52
53
|
const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
53
54
|
featureSupportLevelData,
|
|
54
55
|
}) => {
|
|
55
|
-
const [field, , { setValue }] = useField<
|
|
56
|
+
const [field, , { setValue }] = useField<number>(INPUT_NAME);
|
|
56
57
|
const [isOpen, setOpen] = React.useState<boolean>(false);
|
|
57
58
|
const newFeatureSupportLevelContext = useNewFeatureSupportLevel();
|
|
58
59
|
|
|
@@ -78,10 +79,10 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
78
79
|
);
|
|
79
80
|
|
|
80
81
|
const options: ControlPlaneNodesOption[] = [
|
|
81
|
-
{ value:
|
|
82
|
-
{ value:
|
|
83
|
-
{ value:
|
|
84
|
-
{ value:
|
|
82
|
+
{ value: 1, label: '1 (Single Node OpenShift)' },
|
|
83
|
+
{ value: 3, label: '3 (highly available cluster)' },
|
|
84
|
+
{ value: 4, label: '4 (highly available cluster+)' },
|
|
85
|
+
{ value: 5, label: '5 (highly available cluster++)' },
|
|
85
86
|
];
|
|
86
87
|
|
|
87
88
|
React.useEffect(() => {
|
|
@@ -92,14 +93,14 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
92
93
|
|
|
93
94
|
const onSelect = (event?: React.SyntheticEvent<HTMLDivElement>): void => {
|
|
94
95
|
const selectedValue = event?.currentTarget.id as string;
|
|
95
|
-
setValue(selectedValue);
|
|
96
|
+
setValue(toNumber(selectedValue));
|
|
96
97
|
setOpen(false);
|
|
97
98
|
};
|
|
98
99
|
|
|
99
100
|
const dropdownItems = options.map(({ value, label }) => {
|
|
100
101
|
const isItemEnabled = isDropdownItemEnabled(value, isNonStandardControlPlaneEnabled);
|
|
101
102
|
return (
|
|
102
|
-
<DropdownItem key={value} id={value} isAriaDisabled={!isItemEnabled}>
|
|
103
|
+
<DropdownItem key={value} id={value.toString()} isAriaDisabled={!isItemEnabled}>
|
|
103
104
|
<Tooltip hidden={isItemEnabled} content={disabledReason} position="top">
|
|
104
105
|
<div>{label}</div>
|
|
105
106
|
</Tooltip>
|
|
@@ -128,7 +129,7 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
128
129
|
onSelect={onSelect}
|
|
129
130
|
/>
|
|
130
131
|
</FormGroup>
|
|
131
|
-
{field.value ===
|
|
132
|
+
{field.value === 1 && (
|
|
132
133
|
<OcmSNODisclaimer
|
|
133
134
|
isDisabled={isDisabled}
|
|
134
135
|
snoSupportLevel={snoSupportLevel || 'supported'}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Button, ButtonVariant, Modal, ModalVariant } from '@patternfly/react-core';
|
|
3
3
|
import { pluralize } from 'humanize-plus';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
AI_CISCO_INTERSIGHT_TAG,
|
|
6
|
+
CpuArchitecture,
|
|
7
|
+
DownloadIso,
|
|
8
|
+
ErrorState,
|
|
9
|
+
isSNO,
|
|
10
|
+
ToolbarButton,
|
|
11
|
+
} from '../../../common';
|
|
5
12
|
import DiscoveryImageForm from './DiscoveryImageForm';
|
|
6
13
|
import { useModalDialogsContext } from '../hosts/ModalDialogsContext';
|
|
7
14
|
import useInfraEnvImageUrl from '../../hooks/useInfraEnvImageUrl';
|
|
@@ -9,6 +16,9 @@ import useInfraEnvIpxeImageUrl from '../../hooks/useInfraEnvIpxeImageUrl';
|
|
|
9
16
|
import DownloadIpxeScript from '../../../common/components/clusterConfiguration/DownloadIpxeScript';
|
|
10
17
|
import './DiscoveryImageModal.css';
|
|
11
18
|
import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
|
|
19
|
+
import { ClustersService } from '../../services';
|
|
20
|
+
import { useDispatch } from 'react-redux';
|
|
21
|
+
import { updateCluster } from '../../store/slices/current-cluster/slice';
|
|
12
22
|
|
|
13
23
|
type DiscoveryImageModalButtonProps = {
|
|
14
24
|
ButtonComponent?: typeof Button | typeof ToolbarButton;
|
|
@@ -49,6 +59,8 @@ export const DiscoveryImageModal = () => {
|
|
|
49
59
|
const { getIsoImageUrl } = useInfraEnvImageUrl();
|
|
50
60
|
const { getIpxeImageUrl } = useInfraEnvIpxeImageUrl();
|
|
51
61
|
|
|
62
|
+
const dispatch = useDispatch();
|
|
63
|
+
|
|
52
64
|
const onImageReady = React.useCallback(async () => {
|
|
53
65
|
// We need to retrieve the Iso for the only infraEnv on Day1, hence we don't specify the architecture
|
|
54
66
|
const { url, error } = await getIsoImageUrl(cluster.id, CpuArchitecture.USE_DAY1_ARCHITECTURE);
|
|
@@ -73,6 +85,16 @@ export const DiscoveryImageModal = () => {
|
|
|
73
85
|
setIpxeSelected(true);
|
|
74
86
|
}, []);
|
|
75
87
|
|
|
88
|
+
const updateTagsForCiscoIntersight = async (cluster: Cluster) => {
|
|
89
|
+
try {
|
|
90
|
+
const { data: updatedCluster } = await ClustersService.update(cluster.id, cluster.tags, {
|
|
91
|
+
tags: AI_CISCO_INTERSIGHT_TAG,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
dispatch(updateCluster(updatedCluster));
|
|
95
|
+
} catch (e) {}
|
|
96
|
+
};
|
|
97
|
+
|
|
76
98
|
if (!cluster) {
|
|
77
99
|
return null;
|
|
78
100
|
}
|
|
@@ -98,6 +120,7 @@ export const DiscoveryImageModal = () => {
|
|
|
98
120
|
isSNO={isSNOCluster}
|
|
99
121
|
onReset={onReset}
|
|
100
122
|
onClose={close}
|
|
123
|
+
updateTagsForCiscoIntersight={() => updateTagsForCiscoIntersight(cluster)}
|
|
101
124
|
/>
|
|
102
125
|
) : ipxeDownloadUrl ? (
|
|
103
126
|
<DownloadIpxeScript
|
|
@@ -171,7 +171,7 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
171
171
|
onChange={handleExternalPartnerIntegrationsChange}
|
|
172
172
|
cpuArchitecture={values.cpuArchitecture as SupportedCpuArchitecture}
|
|
173
173
|
featureSupportLevelData={featureSupportLevelData}
|
|
174
|
-
isSNO={values.controlPlaneCount ===
|
|
174
|
+
isSNO={values.controlPlaneCount === 1}
|
|
175
175
|
/>
|
|
176
176
|
)}
|
|
177
177
|
|
|
@@ -197,7 +197,7 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
197
197
|
<DiskEncryptionControlGroup
|
|
198
198
|
values={values}
|
|
199
199
|
isDisabled={isPullSecretSet}
|
|
200
|
-
isSNO={values.controlPlaneCount ===
|
|
200
|
+
isSNO={values.controlPlaneCount === 1}
|
|
201
201
|
docVersion={openshiftVersion}
|
|
202
202
|
/>
|
|
203
203
|
</Form>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
|
+
import { getFieldId, PopoverIcon } from '../../../../common';
|
|
4
|
+
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
5
|
+
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
6
|
+
import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
|
|
7
|
+
|
|
8
|
+
const AUTHORINO_FIELD_NAME = 'useAuthorino';
|
|
9
|
+
|
|
10
|
+
const AuthorinoLabel = ({
|
|
11
|
+
disabledReason,
|
|
12
|
+
supportLevel,
|
|
13
|
+
}: {
|
|
14
|
+
disabledReason?: string;
|
|
15
|
+
supportLevel?: SupportLevel;
|
|
16
|
+
}) => {
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
<Tooltip hidden={!disabledReason} content={disabledReason}>
|
|
20
|
+
<span>Install Authorino </span>
|
|
21
|
+
</Tooltip>
|
|
22
|
+
<PopoverIcon
|
|
23
|
+
id={AUTHORINO_FIELD_NAME}
|
|
24
|
+
component={'a'}
|
|
25
|
+
bodyContent={'No additional requirements needed'}
|
|
26
|
+
/>
|
|
27
|
+
<NewFeatureSupportLevelBadge featureId="AUTHORINO" supportLevel={supportLevel} />
|
|
28
|
+
</>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const AuthorinoHelperText = () => {
|
|
33
|
+
return (
|
|
34
|
+
<HelperText>
|
|
35
|
+
<HelperTextItem variant="indeterminate">
|
|
36
|
+
Lightweigth external authorization service for tailor-made Zero Trust API security.{' '}
|
|
37
|
+
</HelperTextItem>
|
|
38
|
+
</HelperText>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const AuthorinoCheckbox = ({
|
|
43
|
+
disabledReason,
|
|
44
|
+
supportLevel,
|
|
45
|
+
}: {
|
|
46
|
+
disabledReason?: string;
|
|
47
|
+
supportLevel?: SupportLevel | undefined;
|
|
48
|
+
}) => {
|
|
49
|
+
const fieldId = getFieldId(AUTHORINO_FIELD_NAME, 'input');
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<FormGroup isInline fieldId={fieldId}>
|
|
53
|
+
<OcmCheckboxField
|
|
54
|
+
name={AUTHORINO_FIELD_NAME}
|
|
55
|
+
label={<AuthorinoLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
|
|
56
|
+
helperText={<AuthorinoHelperText />}
|
|
57
|
+
isDisabled={!!disabledReason}
|
|
58
|
+
/>
|
|
59
|
+
</FormGroup>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export default AuthorinoCheckbox;
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
3
|
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
ClusterOperatorProps,
|
|
7
|
-
CNV_LINK,
|
|
8
|
-
getFieldId,
|
|
9
|
-
OperatorsValues,
|
|
10
|
-
PopoverIcon,
|
|
11
|
-
} from '../../../../common';
|
|
4
|
+
import { ClusterOperatorProps, CNV_LINK, getFieldId, PopoverIcon } from '../../../../common';
|
|
12
5
|
import CnvHostRequirements from './CnvHostRequirements';
|
|
13
|
-
import {
|
|
14
|
-
getCnvDisabledWithMtvReason,
|
|
15
|
-
getCnvIncompatibleWithLvmReason,
|
|
16
|
-
} from '../../featureSupportLevels/featureStateUtils';
|
|
17
6
|
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
18
|
-
import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
|
|
19
7
|
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
20
8
|
import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
|
|
21
9
|
|
|
@@ -70,28 +58,16 @@ const CnvHelperText = () => {
|
|
|
70
58
|
const CnvCheckbox = ({
|
|
71
59
|
clusterId,
|
|
72
60
|
isVersionEqualsOrMajorThan4_15,
|
|
61
|
+
disabledReason,
|
|
62
|
+
supportLevel,
|
|
73
63
|
}: {
|
|
74
64
|
clusterId: ClusterOperatorProps['clusterId'];
|
|
75
65
|
isVersionEqualsOrMajorThan4_15: boolean;
|
|
66
|
+
disabledReason?: string;
|
|
67
|
+
supportLevel?: SupportLevel | undefined;
|
|
76
68
|
}) => {
|
|
77
69
|
const fieldId = getFieldId(CNV_FIELD_NAME, 'input');
|
|
78
70
|
|
|
79
|
-
const featureSupportLevel = useNewFeatureSupportLevel();
|
|
80
|
-
const { values } = useFormikContext<OperatorsValues>();
|
|
81
|
-
const [disabledReason, setDisabledReason] = useState<string | undefined>();
|
|
82
|
-
|
|
83
|
-
React.useEffect(() => {
|
|
84
|
-
let reason = featureSupportLevel.getFeatureDisabledReason('CNV');
|
|
85
|
-
if (!reason) {
|
|
86
|
-
const lvmSupport = featureSupportLevel.getFeatureSupportLevel('LVM');
|
|
87
|
-
reason = getCnvIncompatibleWithLvmReason(values, lvmSupport);
|
|
88
|
-
}
|
|
89
|
-
if (!reason) {
|
|
90
|
-
reason = getCnvDisabledWithMtvReason(values);
|
|
91
|
-
}
|
|
92
|
-
setDisabledReason(reason);
|
|
93
|
-
}, [values, featureSupportLevel]);
|
|
94
|
-
|
|
95
71
|
return (
|
|
96
72
|
<FormGroup isInline fieldId={fieldId}>
|
|
97
73
|
<OcmCheckboxField
|
|
@@ -101,7 +77,7 @@ const CnvCheckbox = ({
|
|
|
101
77
|
clusterId={clusterId}
|
|
102
78
|
disabledReason={disabledReason}
|
|
103
79
|
isVersionEqualsOrMajorThan4_15={isVersionEqualsOrMajorThan4_15}
|
|
104
|
-
supportLevel={
|
|
80
|
+
supportLevel={supportLevel}
|
|
105
81
|
/>
|
|
106
82
|
}
|
|
107
83
|
helperText={<CnvHelperText />}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
|
+
import { getFieldId, PopoverIcon } from '../../../../common';
|
|
4
|
+
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
5
|
+
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
6
|
+
import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
|
|
7
|
+
|
|
8
|
+
const LSO_FIELD_NAME = 'useLso';
|
|
9
|
+
|
|
10
|
+
const LsoLabel = ({
|
|
11
|
+
disabledReason,
|
|
12
|
+
supportLevel,
|
|
13
|
+
}: {
|
|
14
|
+
disabledReason?: string;
|
|
15
|
+
supportLevel?: SupportLevel;
|
|
16
|
+
}) => {
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
<Tooltip hidden={!disabledReason} content={disabledReason}>
|
|
20
|
+
<span>Install Local Storage Operator </span>
|
|
21
|
+
</Tooltip>
|
|
22
|
+
<PopoverIcon
|
|
23
|
+
id={LSO_FIELD_NAME}
|
|
24
|
+
component={'a'}
|
|
25
|
+
bodyContent={'No additional requirements needed'}
|
|
26
|
+
/>
|
|
27
|
+
<NewFeatureSupportLevelBadge featureId="LSO" supportLevel={supportLevel} />
|
|
28
|
+
</>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const LsoHelperText = () => {
|
|
33
|
+
return (
|
|
34
|
+
<HelperText>
|
|
35
|
+
<HelperTextItem variant="indeterminate">
|
|
36
|
+
Allows provisioning of persistent storage by using local volumes.{' '}
|
|
37
|
+
</HelperTextItem>
|
|
38
|
+
</HelperText>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const LsoCheckbox = ({
|
|
43
|
+
disabledReason,
|
|
44
|
+
supportLevel,
|
|
45
|
+
}: {
|
|
46
|
+
disabledReason?: string;
|
|
47
|
+
supportLevel?: SupportLevel | undefined;
|
|
48
|
+
}) => {
|
|
49
|
+
const fieldId = getFieldId(LSO_FIELD_NAME, 'input');
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<FormGroup isInline fieldId={fieldId}>
|
|
53
|
+
<OcmCheckboxField
|
|
54
|
+
name={LSO_FIELD_NAME}
|
|
55
|
+
label={<LsoLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
|
|
56
|
+
helperText={<LsoHelperText />}
|
|
57
|
+
isDisabled={!!disabledReason}
|
|
58
|
+
/>
|
|
59
|
+
</FormGroup>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export default LsoCheckbox;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
|
-
import { useFormikContext } from 'formik';
|
|
4
3
|
import {
|
|
5
4
|
ClusterOperatorProps,
|
|
6
5
|
getFieldId,
|
|
7
6
|
PopoverIcon,
|
|
8
7
|
operatorLabels,
|
|
9
|
-
OperatorsValues,
|
|
10
8
|
OPERATOR_NAME_LVM,
|
|
11
9
|
ExposedOperatorName,
|
|
12
10
|
ExternalLink,
|
|
@@ -16,10 +14,6 @@ import {
|
|
|
16
14
|
import LvmHostRequirements from './LvmHostRequirements';
|
|
17
15
|
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
18
16
|
import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
|
|
19
|
-
import {
|
|
20
|
-
getLvmIncompatibleWithCnvReason,
|
|
21
|
-
getLvmsIncompatibleWithOdfReason,
|
|
22
|
-
} from '../../featureSupportLevels/featureStateUtils';
|
|
23
17
|
import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
|
|
24
18
|
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
25
19
|
import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
|
|
@@ -70,38 +64,26 @@ const LvmLabel = ({ clusterId, operatorLabel, disabledReason, supportLevel }: Lv
|
|
|
70
64
|
const LvmCheckbox = ({
|
|
71
65
|
clusterId,
|
|
72
66
|
openshiftVersion,
|
|
67
|
+
disabledReason,
|
|
68
|
+
supportLevel,
|
|
73
69
|
}: {
|
|
74
70
|
clusterId: ClusterOperatorProps['clusterId'];
|
|
75
71
|
openshiftVersion?: ClusterOperatorProps['openshiftVersion'];
|
|
72
|
+
disabledReason?: string;
|
|
73
|
+
supportLevel?: SupportLevel | undefined;
|
|
76
74
|
}) => {
|
|
77
75
|
const fieldId = getFieldId(LVM_FIELD_NAME, 'input');
|
|
78
76
|
|
|
79
77
|
const featureSupportLevel = useNewFeatureSupportLevel();
|
|
80
78
|
const { t } = useTranslation();
|
|
81
|
-
const { values } = useFormikContext<OperatorsValues>();
|
|
82
|
-
const [disabledReason, setDisabledReason] = useState<string | undefined>();
|
|
83
79
|
|
|
84
80
|
const operatorInfo = React.useMemo(() => {
|
|
85
|
-
const lvmSupport = featureSupportLevel.getFeatureSupportLevel('LVM');
|
|
86
|
-
|
|
87
81
|
const operatorLabel = operatorLabels(t, featureSupportLevel)[OPERATOR_NAME_LVM];
|
|
88
82
|
return {
|
|
89
|
-
lvmSupport,
|
|
90
83
|
operatorLabel,
|
|
91
|
-
operatorName:
|
|
84
|
+
operatorName: supportLevel === 'supported' ? OPERATOR_NAME_LVMS : OPERATOR_NAME_LVM,
|
|
92
85
|
};
|
|
93
|
-
}, [
|
|
94
|
-
|
|
95
|
-
React.useEffect(() => {
|
|
96
|
-
let reason = featureSupportLevel.getFeatureDisabledReason('LVM');
|
|
97
|
-
if (!reason) {
|
|
98
|
-
reason = getLvmIncompatibleWithCnvReason(values, operatorInfo.lvmSupport);
|
|
99
|
-
if (!reason) {
|
|
100
|
-
reason = getLvmsIncompatibleWithOdfReason(values);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
setDisabledReason(reason);
|
|
104
|
-
}, [values, featureSupportLevel, operatorInfo.lvmSupport]);
|
|
86
|
+
}, [featureSupportLevel, supportLevel, t]);
|
|
105
87
|
|
|
106
88
|
return (
|
|
107
89
|
<FormGroup isInline fieldId={fieldId}>
|
|
@@ -112,7 +94,7 @@ const LvmCheckbox = ({
|
|
|
112
94
|
clusterId={clusterId}
|
|
113
95
|
operatorLabel={operatorInfo.operatorLabel}
|
|
114
96
|
disabledReason={disabledReason}
|
|
115
|
-
supportLevel={
|
|
97
|
+
supportLevel={supportLevel}
|
|
116
98
|
/>
|
|
117
99
|
}
|
|
118
100
|
helperText={
|