diff --git a/apps/assisted-ui/package.json b/apps/assisted-ui/package.json index 04d72360cc..e3750ee53f 100644 --- a/apps/assisted-ui/package.json +++ b/apps/assisted-ui/package.json @@ -10,7 +10,7 @@ "@patternfly/react-table": "5.2.0", "@patternfly/react-tokens": "5.2.0", "@reduxjs/toolkit": "^1.9.1", - "@sentry/browser": "^7.119", + "@sentry/browser": "^5.9 || ^6", "axios": ">=0.22.0 <2.0.0", "i18next": "^20.4.0", "i18next-browser-languagedetector": "^6.1.2", diff --git a/libs/locales/lib/en/translation.json b/libs/locales/lib/en/translation.json index 6aef0b4859..24487e221d 100644 --- a/libs/locales/lib/en/translation.json +++ b/libs/locales/lib/en/translation.json @@ -471,7 +471,6 @@ "ai:Learn more": "Learn more", "ai:Learn more about configuration.": "Learn more about configuration.", "ai:Learn more about enabling CIM on AWS <1>": "Learn more about enabling CIM on AWS <1>", - "ai:Learn more about MTU (maximum transmission unit)": "Learn more about MTU (maximum transmission unit)", "ai:Learn more about OpenShift releases": "Learn more about OpenShift releases", "ai:Learn more about pull secrets and view examples": "Learn more about pull secrets and view examples", "ai:Learn more about storage class": "Learn more about storage class", @@ -508,7 +507,6 @@ "ai:Memory capacity": "Memory capacity", "ai:Message": "Message", "ai:Metal3 operator is not configured": "Metal3 operator is not configured", - "ai:Migration Toolkit for Virtualization": "Migration Toolkit for Virtualization", "ai:Migration toolkit for virtualization requirements": "Migration toolkit for virtualization requirements", "ai:Minimal image file": "Minimal image file", "ai:Minimal value is 10Gi": "Minimal value is 10Gi", @@ -527,8 +525,6 @@ "ai:More info for image storage": "More information for image storage", "ai:More info for load balancer on Amazon web services": "More information for load balancer on Amazon web services", "ai:More info for system storage": "More information for system storage", - "ai:MTU (maximum transmission unit) failure": "MTU (maximum transmission unit) failure", - "ai:MTU requirements": "MTU requirements", "ai:Multicluster engine": "Multicluster engine", "ai:Multicluster engine requirements": "Multicluster engine requirements", "ai:Must be at least 1": "Must be at least 1", @@ -616,8 +612,6 @@ "ai:OpenShift Cluster Manager": "OpenShift Cluster Manager", "ai:OpenShift Data Foundation": "OpenShift Data Foundation", "ai:OpenShift in-place upgrades aren't expected to work with SNO. If an upgrade is needed, your system will need a redeployment.": "OpenShift in-place upgrades are not expected to work with SNO. If an upgrade is needed, your system to be redeployed.", - "ai:OpenShift sandboxed containers": "OpenShift sandboxed containers", - "ai:OpenShift sandboxed containers requirements": "OpenShift sandboxed containers requirements", "ai:OpenShift version": "OpenShift version", "ai:OpenShift Virtualization": "OpenShift Virtualization", "ai:OpenShift Web Console troubleshooting": "OpenShift Web Console troubleshooting", diff --git a/libs/types/assisted-installer-service.d.ts b/libs/types/assisted-installer-service.d.ts index 6ed48ca74d..1e5c5f134c 100644 --- a/libs/types/assisted-installer-service.d.ts +++ b/libs/types/assisted-installer-service.d.ts @@ -83,7 +83,6 @@ export interface Boot { currentBootMode?: string; pxeInterface?: string; commandLine?: string; - secureBootState?: SecureBootState; } export interface Cluster { /** @@ -368,10 +367,6 @@ export interface Cluster { * Indication if organization soft timeouts is enabled for the cluster. */ orgSoftTimeoutsEnabled?: boolean; - /** - * Specifies the required number of control plane nodes that should be part of the cluster. - */ - controlPlaneCount?: number; } export interface ClusterCreateParams { /** @@ -379,7 +374,7 @@ export interface ClusterCreateParams { */ name: string; /** - * (DEPRECATED) Please use 'controlPlaneCount' instead. Guaranteed availability of the installed cluster. 'Full' installs a Highly-Available cluster + * Guaranteed availability of the installed cluster. 'Full' installs a Highly-Available cluster * over multiple master nodes whereas 'None' installs a full cluster over one node. * */ @@ -497,10 +492,6 @@ export interface ClusterCreateParams { * A comma-separated list of tags that are associated to the cluster. */ tags?: string; - /** - * Specifies the required number of control plane nodes that should be part of the cluster. - */ - controlPlaneCount?: number; } export interface ClusterDefaultConfig { clusterNetworkCidr?: string; // ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[\/]([1-9]|[1-2][0-9]|3[0-2]?)$ @@ -620,7 +611,6 @@ export type ClusterValidationId = | 'lvm-requirements-satisfied' | 'mce-requirements-satisfied' | 'mtv-requirements-satisfied' - | 'osc-requirements-satisfied' | 'network-type-valid' | 'platform-requirements-satisfied' | 'node-feature-discovery-requirements-satisfied' @@ -628,8 +618,7 @@ export type ClusterValidationId = | 'pipelines-requirements-satisfied' | 'servicemesh-requirements-satisfied' | 'serverless-requirements-satisfied' - | 'openshift-ai-requirements-satisfied' - | 'authorino-requirements-satisfied'; + | 'openshift-ai-requirements-satisfied'; export interface CompletionParams { isSuccess: boolean; errorInfo?: string; @@ -654,7 +643,6 @@ export interface ConnectivityRemoteHost { hostId?: string; // uuid l2Connectivity?: L2Connectivity[]; l3Connectivity?: L3Connectivity[]; - mtuReport?: MtuReport[]; } export interface ConnectivityReport { remoteHosts?: ConnectivityRemoteHost[]; @@ -996,7 +984,6 @@ export type FeatureSupportLevelId = | 'CNV' | 'MCE' | 'MTV' - | 'OSC' | 'NUTANIX_INTEGRATION' | 'BAREMETAL_PLATFORM' | 'NONE_PLATFORM' @@ -1018,9 +1005,7 @@ export type FeatureSupportLevelId = | 'PIPELINES' | 'SERVICEMESH' | 'SERVERLESS' - | 'OPENSHIFT_AI' - | 'NON_STANDARD_HA_CONTROL_PLANE' - | 'AUTHORINO'; + | 'OPENSHIFT_AI'; /** * Cluster finalizing stage managed by controller */ @@ -1546,7 +1531,6 @@ export type HostValidationId = | 'lvm-requirements-satisfied' | 'mce-requirements-satisfied' | 'mtv-requirements-satisfied' - | 'osc-requirements-satisfied' | 'sufficient-installation-disk-speed' | 'cnv-requirements-satisfied' | 'sufficient-network-latency-requirement-for-role' @@ -1571,9 +1555,7 @@ export type HostValidationId = | 'pipelines-requirements-satisfied' | 'servicemesh-requirements-satisfied' | 'serverless-requirements-satisfied' - | 'openshift-ai-requirements-satisfied' - | 'authorino-requirements-satisfied' - | 'mtu-valid'; + | 'openshift-ai-requirements-satisfied'; /** * Explicit ignition endpoint overrides the default ignition endpoint. */ @@ -2149,11 +2131,6 @@ export interface MonitoredOperator { statusUpdatedAt?: string; // date-time } export type MonitoredOperatorsList = MonitoredOperator[]; -export interface MtuReport { - outgoingNic?: string; - remoteIpAddress?: string; - mtuSuccessful?: boolean; -} export interface NextStepCmdRequest { /** * Infra env id @@ -2454,7 +2431,6 @@ export interface Route { */ metric?: number; // int32 } -export type SecureBootState = 'Unknown' | 'NotSupported' | 'Enabled' | 'Disabled'; /** * IP address block for service IP blocks. */ @@ -2744,10 +2720,6 @@ export interface V2ClusterUpdateParams { * A comma-separated list of tags that are associated to the cluster. */ tags?: string; - /** - * Specifies the required number of control plane nodes that should be part of the cluster. - */ - controlPlaneCount?: number; } export interface V2Events { clusterId?: string; diff --git a/libs/ui-lib-tests/cypress/fixtures/cluster/validation-info-host-discovery.ts b/libs/ui-lib-tests/cypress/fixtures/cluster/validation-info-host-discovery.ts index 3a1b076d31..b7b9e768cc 100644 --- a/libs/ui-lib-tests/cypress/fixtures/cluster/validation-info-host-discovery.ts +++ b/libs/ui-lib-tests/cypress/fixtures/cluster/validation-info-host-discovery.ts @@ -34,11 +34,6 @@ const operatorValidations = [ status: 'success', message: 'openshift-ai is disabled', }, - { - id: 'osc-requirements-satisfied', - status: 'success', - message: 'osc is disabled', - }, ]; const hostValidationsInfo = { @@ -77,11 +72,6 @@ const hostValidationsInfo = { status: 'pending', message: 'Not enough information to calculate host majority groups', }, - { - id: 'mtu-valid', - status: 'success', - message: '', - }, ], }; diff --git a/libs/ui-lib-tests/cypress/fixtures/infra-envs/feature-support.ts b/libs/ui-lib-tests/cypress/fixtures/infra-envs/feature-support.ts index 304bec1a8f..764037ce98 100644 --- a/libs/ui-lib-tests/cypress/fixtures/infra-envs/feature-support.ts +++ b/libs/ui-lib-tests/cypress/fixtures/infra-envs/feature-support.ts @@ -176,62 +176,6 @@ const featureSupportLevels = { VSPHERE_INTEGRATION: 'supported', }, }, - '4.18': { - features: { - BAREMETAL_PLATFORM: 'supported', - CLUSTER_MANAGED_NETWORKING: 'supported', - CNV: 'supported', - CUSTOM_MANIFEST: 'supported', - DUAL_STACK: 'supported', - DUAL_STACK_VIPS: 'supported', - EXTERNAL_PLATFORM: 'supported', - EXTERNAL_PLATFORM_OCI: 'tech-preview', - FULL_ISO: 'supported', - LSO: 'supported', - LVM: 'supported', - MCE: 'supported', - MINIMAL_ISO: 'supported', - NONE_PLATFORM: 'supported', - NUTANIX_INTEGRATION: 'supported', - ODF: 'supported', - OVN_NETWORK_TYPE: 'supported', - SDN_NETWORK_TYPE: 'unavailable', - SINGLE_NODE_EXPANSION: 'supported', - SKIP_MCO_REBOOT: 'supported', - SNO: 'supported', - USER_MANAGED_NETWORKING: 'supported', - VIP_AUTO_ALLOC: 'dev-preview', - VSPHERE_INTEGRATION: 'supported', - }, - }, - '4.18_s390x': { - features: { - BAREMETAL_PLATFORM: 'supported', - CLUSTER_MANAGED_NETWORKING: 'supported', - CNV: 'supported', - CUSTOM_MANIFEST: 'supported', - DUAL_STACK: 'supported', - DUAL_STACK_VIPS: 'supported', - EXTERNAL_PLATFORM: 'supported', - EXTERNAL_PLATFORM_OCI: 'tech-preview', - FULL_ISO: 'supported', - LSO: 'supported', - LVM: 'supported', - MCE: 'supported', - MINIMAL_ISO: 'supported', - NONE_PLATFORM: 'supported', - NUTANIX_INTEGRATION: 'supported', - ODF: 'supported', - OVN_NETWORK_TYPE: 'supported', - SDN_NETWORK_TYPE: 'unavailable', - SINGLE_NODE_EXPANSION: 'supported', - SKIP_MCO_REBOOT: 'supported', - SNO: 'supported', - USER_MANAGED_NETWORKING: 'supported', - VIP_AUTO_ALLOC: 'dev-preview', - VSPHERE_INTEGRATION: 'supported', - }, - }, }; export { featureSupportLevels }; diff --git a/libs/ui-lib-tests/cypress/fixtures/infra-envs/openshift-versions.ts b/libs/ui-lib-tests/cypress/fixtures/infra-envs/openshift-versions.ts index d80746ef7d..be4f6df180 100644 --- a/libs/ui-lib-tests/cypress/fixtures/infra-envs/openshift-versions.ts +++ b/libs/ui-lib-tests/cypress/fixtures/infra-envs/openshift-versions.ts @@ -47,11 +47,6 @@ const versions: Record = { display_name: 'OpenShift 4.15.2', support_level: 'production', }, - '4.18': { - cpu_architectures: [x86, arm64, s390x, ppc64le], - display_name: 'OpenShift 4.18', - support_level: 'production', - }, }; expect( diff --git a/libs/ui-lib-tests/cypress/integration/create-sno/0-create-cluster.cy.ts b/libs/ui-lib-tests/cypress/integration/create-sno/0-create-cluster.cy.ts index 35ccd9b0d3..c60f2f2396 100644 --- a/libs/ui-lib-tests/cypress/integration/create-sno/0-create-cluster.cy.ts +++ b/libs/ui-lib-tests/cypress/integration/create-sno/0-create-cluster.cy.ts @@ -31,10 +31,9 @@ describe(`Assisted Installer SNO Cluster Installation`, () => { clusterDetailsPage.inputClusterName(); clusterDetailsPage.inputBaseDnsDomain(); - clusterDetailsPage.inputOpenshiftVersion('4.18'); + clusterDetailsPage.inputOpenshiftVersion(); - clusterDetailsPage.openControlPlaneNodesDropdown(); - clusterDetailsPage.selectControlPlaneNodeOption('1'); + clusterDetailsPage.enableSno(); clusterDetailsPage.inputPullSecret(); // Create the cluster and store its ID when moving to the next step diff --git a/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/validations-new-cluster-page.cy.ts b/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/validations-new-cluster-page.cy.ts index 80e57441f8..d1bd25b41e 100644 --- a/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/validations-new-cluster-page.cy.ts +++ b/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/validations-new-cluster-page.cy.ts @@ -48,7 +48,6 @@ describe('Create a new cluster and show correct validations for every field', () const malformedJsonPullSecret = '{{}}'; let pullSecretError = "Invalid pull secret format. You must use your Red Hat account's pull secret"; - clusterDetailsPage.clearPullSecret(); clusterDetailsPage.inputPullSecret(malformedJsonPullSecret); clusterDetailsPage.clickClusterDetailsBody(); clusterDetailsPage.validateInputPullSecretFieldHelper(pullSecretError); @@ -59,7 +58,6 @@ describe('Create a new cluster and show correct validations for every field', () // Need to set valid name and DNS clusterDetailsPage.inputClusterName(); clusterDetailsPage.inputBaseDnsDomain(); - clusterDetailsPage.clearPullSecret(); clusterDetailsPage.inputPullSecret(invalidPullSecret); const errorSuffix = Cypress.env('OCM_USER') diff --git a/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/with-external-partner-integrations.cy.ts b/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/with-external-partner-integrations.cy.ts index fced49735a..cccc6e13ae 100644 --- a/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/with-external-partner-integrations.cy.ts +++ b/libs/ui-lib-tests/cypress/integration/use-cases/create-cluster/with-external-partner-integrations.cy.ts @@ -100,16 +100,16 @@ describe('Create a new cluster with external partner integrations', () => { }); it('Validate that Nutanix option is disabled when we choose SNO option', () => { - ClusterDetailsForm.openshiftVersionField.selectVersion('4.18'); - ClusterDetailsForm.controlPlaneNodesField.selectControlPlaneNode('1'); + ClusterDetailsForm.openshiftVersionField.selectVersion('4.14'); + ClusterDetailsForm.snoField.findCheckbox().click(); ClusterDetailsForm.externalPartnerIntegrationsField .findDropdownItem('Nutanix') .should('have.class', 'pf-m-aria-disabled'); }); it('Validate that all dropdown is disabled in case we choose IBM/Z(s390x) architecture + SNO', () => { - ClusterDetailsForm.openshiftVersionField.selectVersion('4.18'); - ClusterDetailsForm.controlPlaneNodesField.selectControlPlaneNode('1'); + ClusterDetailsForm.openshiftVersionField.selectVersion('4.14'); ClusterDetailsForm.cpuArchitectureField.selectCpuArchitecture('s390x'); + ClusterDetailsForm.snoField.findCheckbox().click(); ClusterDetailsForm.externalPartnerIntegrationsField .findDropdownToggle() .should('be.disabled'); diff --git a/libs/ui-lib-tests/cypress/support/variables/cluster-details.ts b/libs/ui-lib-tests/cypress/support/variables/cluster-details.ts index 915446f08e..1e1085d04f 100644 --- a/libs/ui-lib-tests/cypress/support/variables/cluster-details.ts +++ b/libs/ui-lib-tests/cypress/support/variables/cluster-details.ts @@ -24,4 +24,3 @@ Cypress.env( ); Cypress.env('baseDnsDomainFieldHelperErrorId', '#form-input-baseDnsDomain-field-helper-error'); Cypress.env('pullSecretFieldHelperErrorId', '#form-input-pullSecret-field-helper-error'); -Cypress.env('controlPlaneNodesFieldId', '#form-input-controlPlaneCount-field'); diff --git a/libs/ui-lib-tests/cypress/views/clusterDetails.ts b/libs/ui-lib-tests/cypress/views/clusterDetails.ts index b00c436b5e..24e2f7922e 100644 --- a/libs/ui-lib-tests/cypress/views/clusterDetails.ts +++ b/libs/ui-lib-tests/cypress/views/clusterDetails.ts @@ -58,6 +58,13 @@ export const clusterDetailsPage = { inputBaseDnsDomain: (dns = Cypress.env('DNS_DOMAIN_NAME')) => { clusterDetailsPage.getBaseDnsDomain().clear().type(dns).should('have.value', dns); }, + getSno: () => { + return cy.get(Cypress.env('highAvailabilityModeFieldId')); + }, + enableSno: () => { + clusterDetailsPage.getSno().scrollIntoView().should('be.visible').check(); + clusterDetailsPage.getSno().should('be.checked'); + }, getStaticIpNetworkConfig: () => { return cy.get(Cypress.env('staticIpNetworkConfigFieldId')); }, @@ -136,13 +143,4 @@ export const clusterDetailsPage = { validateInputPullSecretFieldHelper: (msg) => { cy.get(Cypress.env('pullSecretFieldHelperErrorId')).should('contain', msg); }, - openControlPlaneNodesDropdown: () => { - cy.get(`${Cypress.env('controlPlaneNodesFieldId')} > button.pf-v5-c-dropdown__toggle`).click(); - }, - selectControlPlaneNodeOption: (controlPlaneCount) => { - cy.get(`ul.pf-v5-c-dropdown__menu li[id=${controlPlaneCount}] a`).click(); - cy.get(`${Cypress.env('controlPlaneNodesFieldId')} .pf-v5-c-dropdown__toggle-text`) - .invoke('text') - .should('match', new RegExp(controlPlaneCount, 'i')); - }, }; diff --git a/libs/ui-lib-tests/cypress/views/forms/ClusterDetails/ClusterDetailsForm.ts b/libs/ui-lib-tests/cypress/views/forms/ClusterDetails/ClusterDetailsForm.ts index 67856873c5..5241c27284 100644 --- a/libs/ui-lib-tests/cypress/views/forms/ClusterDetails/ClusterDetailsForm.ts +++ b/libs/ui-lib-tests/cypress/views/forms/ClusterDetails/ClusterDetailsForm.ts @@ -7,7 +7,6 @@ import { OpenShiftVersionField } from './Fields/OpenShiftVersionField'; import { PullSecretField } from './Fields/PullSecretField'; import { CpuArchitectureField } from './Fields/CpuArchitectureField'; import { SnoField } from './Fields/SnoField'; -import { ControlPlaneNodesField } from './Fields/ControlPlaneNodesField'; export class ClusterDetailsForm { static readonly alias = `@${ClusterDetailsForm.name}`; @@ -53,8 +52,4 @@ export class ClusterDetailsForm { static get snoField() { return SnoField.init(ClusterDetailsForm.alias); } - - static get controlPlaneNodesField() { - return ControlPlaneNodesField.init(ClusterDetailsForm.alias); - } } diff --git a/libs/ui-lib-tests/cypress/views/forms/ClusterDetails/Fields/ControlPlaneNodesField.ts b/libs/ui-lib-tests/cypress/views/forms/ClusterDetails/Fields/ControlPlaneNodesField.ts deleted file mode 100644 index c29e469bce..0000000000 --- a/libs/ui-lib-tests/cypress/views/forms/ClusterDetails/Fields/ControlPlaneNodesField.ts +++ /dev/null @@ -1,27 +0,0 @@ -export class ControlPlaneNodesField { - static readonly alias = `@${ControlPlaneNodesField.name}`; - static readonly selector = '#form-control__form-input-controlPlaneCount-field'; - - static init(ancestorAlias?: string) { - cy.findWithinOrGet(ControlPlaneNodesField.selector, ancestorAlias).as( - ControlPlaneNodesField.name, - ); - - return ControlPlaneNodesField; - } - - static findLabel() { - return cy.get(ControlPlaneNodesField.alias).findByText(/number of control plane nodes/i); - } - - static findDropdown() { - return cy.get(ControlPlaneNodesField.alias).find('#form-input-controlPlaneCount-field'); - } - - static selectControlPlaneNode(controlPlaneCount: string) { - ControlPlaneNodesField.findDropdown().click(); - ControlPlaneNodesField.findDropdown().within(() => { - cy.findByRole('menuitem', { name: new RegExp(`${controlPlaneCount}`, 'i') }).click(); - }); - } -} diff --git a/libs/ui-lib/lib/common/components/clusterWizard/clusterDetailsValidation.ts b/libs/ui-lib/lib/common/components/clusterWizard/clusterDetailsValidation.ts index 0c04d16b0f..8238b17ea3 100644 --- a/libs/ui-lib/lib/common/components/clusterWizard/clusterDetailsValidation.ts +++ b/libs/ui-lib/lib/common/components/clusterWizard/clusterDetailsValidation.ts @@ -16,7 +16,6 @@ import { } from '../ui'; import { ClusterDetailsValues } from './types'; import { FeatureSupportLevelData } from '../featureSupportLevels'; -import toNumber from 'lodash-es/toNumber'; const emptyTangServers = (): TangServer[] => { return [ @@ -82,7 +81,6 @@ export const getClusterDetailsInitialValues = ({ platform: cluster?.platform?.type || 'none', customOpenshiftSelect: null, userManagedNetworking: cluster?.userManagedNetworking || false, - controlPlaneCount: cluster?.controlPlaneCount?.toString() || '3', }; }; @@ -120,20 +118,20 @@ export const getClusterDetailsValidationSchema = ({ ? baseDomainValidationSchema.required('Required') : dnsNameValidationSchema.required('Required'), pullSecret: pullSecretValidationSchema.required('Required.'), - SNODisclaimer: Yup.boolean().when(['controlPlaneCount', 'openshiftVersion'], { + SNODisclaimer: Yup.boolean().when(['highAvailabilityMode', 'openshiftVersion'], { // The disclaimer is required only if SNO is enabled and SNO feature is not fully supported in that version is: ( - controlPlaneCount: Cluster['controlPlaneCount'], + highAvailabilityMode: Cluster['highAvailabilityMode'], openshiftVersion: Cluster['openshiftVersion'], ) => { const selectedVersion = (ocpVersions || []).find((v) => v.value === openshiftVersion); - const versionToUse = selectedVersion?.value ?? openshiftVersion; if (featureSupportLevels) { - return toNumber(controlPlaneCount) === 1 && versionToUse && featureSupportLevels - ? featureSupportLevels.getFeatureSupportLevel(versionToUse, 'SNO') === 'dev-preview' + return highAvailabilityMode === 'None' && selectedVersion && featureSupportLevels + ? featureSupportLevels.getFeatureSupportLevel(selectedVersion.value, 'SNO') === + 'dev-preview' : false; } else { - return toNumber(controlPlaneCount) === 1 && versionToUse && values.isSNODevPreview; + return highAvailabilityMode === 'None' && selectedVersion && values.isSNODevPreview; } }, then: () => diff --git a/libs/ui-lib/lib/common/components/clusterWizard/types.ts b/libs/ui-lib/lib/common/components/clusterWizard/types.ts index 633dd22aa3..ce774e3c7d 100644 --- a/libs/ui-lib/lib/common/components/clusterWizard/types.ts +++ b/libs/ui-lib/lib/common/components/clusterWizard/types.ts @@ -34,7 +34,6 @@ export type ClusterDetailsValues = { platform: PlatformType; customOpenshiftSelect: OpenshiftVersionOptionType | null; userManagedNetworking: boolean; - controlPlaneCount: string; }; export type HostsValidationsProps = { diff --git a/libs/ui-lib/lib/common/components/hosts/HostStatus.tsx b/libs/ui-lib/lib/common/components/hosts/HostStatus.tsx index a5d3f4bcea..ab9525f3c2 100644 --- a/libs/ui-lib/lib/common/components/hosts/HostStatus.tsx +++ b/libs/ui-lib/lib/common/components/hosts/HostStatus.tsx @@ -57,6 +57,7 @@ const HostStatusPopoverContent: React.FC = ({ const { host } = props; const { status, statusInfo } = host; const { t } = useTranslation(); + if (['installing-in-progress'].includes(status)) { return ( @@ -140,7 +141,7 @@ const HostStatusPopoverContent: React.FC = ({ {details} )} - + ); diff --git a/libs/ui-lib/lib/common/components/hosts/HostValidationGroups.tsx b/libs/ui-lib/lib/common/components/hosts/HostValidationGroups.tsx index bb868640d2..7943e3e5fb 100644 --- a/libs/ui-lib/lib/common/components/hosts/HostValidationGroups.tsx +++ b/libs/ui-lib/lib/common/components/hosts/HostValidationGroups.tsx @@ -9,7 +9,6 @@ import { ExclamationTriangleIcon } from '@patternfly/react-icons/dist/js/icons/e import { Host, HostValidationId } from '@openshift-assisted/types/assisted-installer-service'; import { Validation, ValidationsInfo } from '../../types/hosts'; import { - getMtuLink, hostValidationFailureHints, hostValidationGroupLabels, hostValidationLabels, @@ -20,7 +19,6 @@ import { useTranslation } from '../../hooks/use-translation-wrapper'; import { getKeys } from '../../utils'; import './HostValidationGroups.css'; -import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon'; export type AdditionNtpSourcePropsType = { AdditionalNTPSourcesDialogToggleComponent?: React.FC; @@ -41,7 +39,6 @@ export type ValidationInfoActionProps = AdditionNtpSourcePropsType & type HostValidationGroupsProps = ValidationInfoActionProps & { validationsInfo: ValidationsInfo; - openshiftVersion?: string; }; type ValidationGroupAlertProps = ValidationInfoActionProps & { @@ -148,34 +145,6 @@ const ApiVipConnectivityAlert = ({ ); }; -const MtuInfoLink = ({ docsVersion }: { docsVersion: string }) => { - const { t } = useTranslation(); - return ( - - {t('ai:Learn more about MTU (maximum transmission unit)')} . - - ); -}; - -const MtuSyncAlert = ({ - variant, - validation, - docsVersion, -}: { - variant: AlertVariant; - validation: Validation; - docsVersion: string; -}) => { - const { t } = useTranslation(); - return ( - - {toSentence(validation.message)} {hostValidationFailureHints(t)[validation.id]} -
- {} -
- ); -}; - const ValidationGroupAlerts = ({ validations, title, @@ -184,8 +153,7 @@ const ValidationGroupAlerts = ({ AdditionalNTPSourcesDialogToggleComponent, UpdateDay2ApiVipDialogToggleComponent, host, - openshiftVersion, -}: ValidationGroupAlertProps & { openshiftVersion?: string }) => { +}: ValidationGroupAlertProps) => { if (!validations.length) { return null; } @@ -194,7 +162,6 @@ const ValidationGroupAlerts = ({ ['hostname-valid']: undefined, ['ntp-synced']: undefined, ['ignition-downloadable']: undefined, - ['mtu-valid']: undefined, }; const alerts = []; const validationsWithoutActions: Validation[] = []; @@ -243,16 +210,6 @@ const ValidationGroupAlerts = ({ />, ); } - if (validationsWithActions['mtu-valid'] && AdditionalNTPSourcesDialogToggleComponent) { - alerts.push( - , - ); - } if (validationsWithoutActions.length > 0) { alerts.push( {alerts}; }; -export const HostValidationGroups = ({ - validationsInfo, - openshiftVersion, - ...props -}: HostValidationGroupsProps) => { +export const HostValidationGroups = ({ validationsInfo, ...props }: HostValidationGroupsProps) => { const { t } = useTranslation(); return ( <> {getKeys(validationsInfo).map((groupName) => { const validations = validationsInfo[groupName] || []; + const pendingValidations = validations.filter( (v) => v.status === 'pending' && v.id !== 'ntp-synced', ); const failedValidations = validations.filter( (v) => (v.status === 'failure' || v.status === 'error') && v.id !== 'ntp-synced', ); + const softValidations = validations.filter( (v) => ['pending', 'failure', 'error'].includes(v.status) && v.id === 'ntp-synced', ); @@ -306,6 +261,7 @@ export const HostValidationGroups = ({ ); }; + const groupLabel = hostValidationGroupLabels(t)[groupName] as string; return ( @@ -323,13 +279,11 @@ export const HostValidationGroups = ({ variant={AlertVariant.info} title={t('ai:Pending validations:')} validations={pendingValidations} - openshiftVersion={openshiftVersion} {...props} /> @@ -340,7 +294,6 @@ export const HostValidationGroups = ({ variant={AlertVariant.warning} title={t('ai:Failed validations:')} validations={failedValidations} - openshiftVersion={openshiftVersion} {...props} /> diff --git a/libs/ui-lib/lib/common/components/hosts/utils.ts b/libs/ui-lib/lib/common/components/hosts/utils.ts index e732d26fda..311254a011 100644 --- a/libs/ui-lib/lib/common/components/hosts/utils.ts +++ b/libs/ui-lib/lib/common/components/hosts/utils.ts @@ -232,7 +232,7 @@ export const areOnlySoftValidationsFailing = (validationsInfo: HostValidationsIn ); if (!failingValidationIds.length) return false; for (const id of failingValidationIds) { - if (!['ntp-synced', 'container-images-available', 'mtu-valid'].includes(id)) { + if (!['ntp-synced', 'container-images-available'].includes(id)) { return false; } } diff --git a/libs/ui-lib/lib/common/config/constants.ts b/libs/ui-lib/lib/common/config/constants.ts index cf8e39a406..dce2cbdb6c 100644 --- a/libs/ui-lib/lib/common/config/constants.ts +++ b/libs/ui-lib/lib/common/config/constants.ts @@ -134,9 +134,6 @@ export const hostValidationLabels = (t: TFunction): { [key in HostValidationId]: 'serverless-requirements-satisfied': t('ai:Serverless requirements'), 'servicemesh-requirements-satisfied': t('ai:Service Mesh requirements'), 'openshift-ai-requirements-satisfied': t('ai:OpenShift AI requirements'), - 'osc-requirements-satisfied': t('ai:OpenShift sandboxed containers requirements'), - 'mtu-valid': t('ai:MTU requirements'), - 'authorino-requirements-satisfied': '', }); export const hostValidationFailureHints = ( @@ -193,9 +190,6 @@ export const hostValidationFailureHints = ( 'serverless-requirements-satisfied': '', 'servicemesh-requirements-satisfied': '', 'openshift-ai-requirements-satisfied': '', - 'osc-requirements-satisfied': '', - 'authorino-requirements-satisfied': '', - 'mtu-valid': '', }); export const clusterValidationLabels = ( @@ -296,7 +290,6 @@ export const OPERATOR_NAME_PIPELINES = 'pipelines'; export const OPERATOR_NAME_SERVICEMESH = 'servicemesh'; export const OPERATOR_NAME_SERVERLESS = 'serverless'; export const OPERATOR_NAME_OPENSHIFT_AI = 'openshift-ai'; -export const OPERATOR_NAME_OSC = 'osc'; const OperatorNames = [ OPERATOR_NAME_CNV, @@ -312,7 +305,6 @@ const OperatorNames = [ OPERATOR_NAME_SERVICEMESH, OPERATOR_NAME_SERVERLESS, OPERATOR_NAME_OPENSHIFT_AI, - OPERATOR_NAME_OSC, ]; export const ExposedOperatorNames = [ OPERATOR_NAME_CNV, @@ -327,7 +319,6 @@ export const ExposedOperatorNames = [ OPERATOR_NAME_SERVICEMESH, OPERATOR_NAME_SERVERLESS, OPERATOR_NAME_OPENSHIFT_AI, - OPERATOR_NAME_OSC, ]; export type OperatorName = (typeof OperatorNames)[number]; @@ -369,8 +360,6 @@ export const operatorLabels = ( [OPERATOR_NAME_SERVICEMESH]: t('ai:Service Mesh'), [OPERATOR_NAME_SERVERLESS]: t('ai:Serverless'), [OPERATOR_NAME_OPENSHIFT_AI]: t('ai:OpenShift AI'), - [OPERATOR_NAME_OSC]: t('ai:OpenShift sandboxed containers'), - [OPERATOR_NAME_MTV]: t('ai:Migration Toolkit for Virtualization'), }; }; diff --git a/libs/ui-lib/lib/common/config/docs_links.ts b/libs/ui-lib/lib/common/config/docs_links.ts index 775037ded7..b2fe5539e4 100644 --- a/libs/ui-lib/lib/common/config/docs_links.ts +++ b/libs/ui-lib/lib/common/config/docs_links.ts @@ -70,9 +70,6 @@ export const ODF_REQUIREMENTS_LINK = export const OPENSHIFT_AI_REQUIREMENTS_LINK = 'https://docs.redhat.com/en/documentation/red_hat_openshift_ai_cloud_service/1/html/installing_the_openshift_ai_cloud_service/requirements-for-openshift-ai_install#requirements-for-openshift-ai_install'; -export const OSC_REQUIREMENTS_LINK = - 'https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.8/html/user_guide/deploying-osc-bare-metal#osc-resource-requirements_deploying-bare-metal'; - export const CNV_LINK = 'https://cloud.redhat.com/learn/topics/virtualization/'; export const ODF_LINK = 'https://www.redhat.com/en/resources/openshift-data-foundation-datasheet'; @@ -107,10 +104,3 @@ export const MTV_LINK = export const OPENSHIFT_AI_LINK = 'https://www.redhat.com/en/technologies/cloud-computing/openshift/openshift-ai'; - -export const OSC_LINK = 'https://docs.redhat.com/en/documentation/openshift_sandboxed_containers'; - -export const getMtuLink = (ocpVersion?: string) => - `https://docs.redhat.com/en/documentation/openshift_container_platform/${getShortOpenshiftVersion( - ocpVersion, - )}/html/networking/changing-cluster-network-mtu#nw-cluster-mtu-change-about_changing-cluster-network-mtu`; diff --git a/libs/ui-lib/lib/common/types/clusters.ts b/libs/ui-lib/lib/common/types/clusters.ts index f979a1fc94..eac179df73 100644 --- a/libs/ui-lib/lib/common/types/clusters.ts +++ b/libs/ui-lib/lib/common/types/clusters.ts @@ -65,7 +65,6 @@ export type OperatorsValues = V2ClusterUpdateParams & { useMultiClusterEngine: boolean; useMigrationToolkitforVirtualization: boolean; useOpenShiftAI: boolean; - useOsc: boolean; }; export type SupportedPlatformType = Extract; diff --git a/libs/ui-lib/lib/ocm/components/SentryErrorMonitorContextProvider.tsx b/libs/ui-lib/lib/ocm/components/SentryErrorMonitorContextProvider.tsx index 2dbef5087d..e0f3a61c27 100644 --- a/libs/ui-lib/lib/ocm/components/SentryErrorMonitorContextProvider.tsx +++ b/libs/ui-lib/lib/ocm/components/SentryErrorMonitorContextProvider.tsx @@ -7,6 +7,7 @@ import { import { handleApiError } from '../../common/api'; import { isApiError } from '../../common/api/utils'; import { captureException } from '../sentry'; +import * as Sentry from '@sentry/browser'; export const SentryErrorMonitorContextProvider: React.FC = ({ children }) => { const exceptionReporter: ExceptionReporter = ( @@ -17,7 +18,7 @@ export const SentryErrorMonitorContextProvider: React.FC = ({ children }) => { if (isApiError(error)) { handleApiError(error); } else { - captureException(error, message, severity); + captureException(error, message, severity as Sentry.Severity); } }; return ( diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx b/libs/ui-lib/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx deleted file mode 100644 index c078ca05f2..0000000000 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import React from 'react'; -import { FormGroup, Tooltip } from '@patternfly/react-core'; -import { Dropdown, DropdownItem, DropdownToggle } from '@patternfly/react-core/deprecated'; -import { useField } from 'formik'; -import { getFieldId, PopoverIcon } from '../../../common'; -import { - NewFeatureSupportLevelMap, - useNewFeatureSupportLevel, -} from '../../../common/components/newFeatureSupportLevels'; -import OcmSNODisclaimer from './OcmSNODisclaimer'; - -const INPUT_NAME = 'controlPlaneCount'; -const fieldId = getFieldId(INPUT_NAME, 'input'); -const DEFAULT_VALUE = '3'; - -export const ControlPlaneNodesLabel = () => { - return ( - <> - Number of control plane nodes{' '} - - Control plane nodes manage workloads, maintain cluster state, and ensure stability. - Using more than three nodes boosts fault tolerance and availability, reducing downtime - during failures. - - } - /> - - ); -}; - -interface ControlPlaneNodesOption { - value: string; - label: string; -} - -interface ControlPlaneNodesDropdownProps { - featureSupportLevelData?: NewFeatureSupportLevelMap | null; -} - -const isDropdownItemEnabled = ( - controlPlaneNodeCount: string, - isNonStandardControlPlaneEnabled: boolean, -): boolean => { - if (controlPlaneNodeCount === '4' || controlPlaneNodeCount === '5') { - return isNonStandardControlPlaneEnabled; - } - return true; -}; - -const ControlPlaneNodesDropdown: React.FC = ({ - featureSupportLevelData, -}) => { - const [field, , { setValue }] = useField(INPUT_NAME); - const [isOpen, setOpen] = React.useState(false); - const newFeatureSupportLevelContext = useNewFeatureSupportLevel(); - - const snoSupportLevel = newFeatureSupportLevelContext.getFeatureSupportLevel( - 'SNO', - featureSupportLevelData ?? undefined, - ); - const snoExpansion = newFeatureSupportLevelContext.isFeatureSupported( - 'SINGLE_NODE_EXPANSION', - featureSupportLevelData ?? undefined, - ); - const isDisabled = newFeatureSupportLevelContext.isFeatureDisabled( - 'SNO', - featureSupportLevelData ?? undefined, - ); - - const disabledReason = - 'This option is not available with the current configurations. Make sure that OpenShift version is 4.18 or newer, CPU architecture is x86_64 and no external platform integration is selected.'; - - const isNonStandardControlPlaneEnabled = newFeatureSupportLevelContext.isFeatureSupported( - 'NON_STANDARD_HA_CONTROL_PLANE', - featureSupportLevelData ?? undefined, - ); - - const options: ControlPlaneNodesOption[] = [ - { value: '1', label: '1 (Single Node OpenShift)' }, - { value: '3', label: '3 (highly available cluster)' }, - { value: '4', label: '4 (highly available cluster+)' }, - { value: '5', label: '5 (highly available cluster++)' }, - ]; - - React.useEffect(() => { - if (!field.value) { - setValue(DEFAULT_VALUE); - } - }, [field.value, setValue]); - - const onSelect = (event?: React.SyntheticEvent): void => { - const selectedValue = event?.currentTarget.id as string; - setValue(selectedValue); - setOpen(false); - }; - - const dropdownItems = options.map(({ value, label }) => { - const isItemEnabled = isDropdownItemEnabled(value, isNonStandardControlPlaneEnabled); - return ( - - - - ); - }); - - const toggle = ( - setOpen(val)}> - {options.find((opt) => opt.value === field.value)?.label || 'Select'} - - ); - - return ( - <> - } - fieldId={fieldId} - > - - - {field.value === '1' && ( - - )} - - ); -}; - -export default ControlPlaneNodesDropdown; diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx b/libs/ui-lib/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx index 2440552ae9..3677c36522 100644 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +++ b/libs/ui-lib/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx @@ -5,6 +5,7 @@ import { useFormikContext } from 'formik'; import { HostsNetworkConfigurationControlGroup } from './HostsNetworkConfigurationControlGroup'; import { ClusterDetailsValues, + isSNO, OpenshiftVersionOptionType, PullSecret, ocmClusterNameValidationMessages, @@ -23,6 +24,7 @@ import OcmOpenShiftVersionSelect from './OcmOpenShiftVersionSelect'; import CustomManifestCheckbox from './CustomManifestCheckbox'; import CpuArchitectureDropdown from './CpuArchitectureDropdown'; import { OcmBaseDomainField } from './OcmBaseDomainField'; +import OcmSNOControlGroup from './OcmSNOControlGroup'; import useSupportLevelsAPI from '../../hooks/useSupportLevelsAPI'; import { useOpenshiftVersionsContext } from '../clusterWizard/OpenshiftVersionsContext'; import { ExternalPlatformDropdown } from './platformIntegration/ExternalPlatformDropdown'; @@ -32,7 +34,6 @@ import { ExternalPlatformLabels } from './platformIntegration/constants'; import { ManagedDomain, PlatformType } from '@openshift-assisted/types/assisted-installer-service'; import { useClusterWizardContext } from '../clusterWizard/ClusterWizardContext'; import { useFeature } from '../../hooks/use-feature'; -import ControlPlaneNodesDropdown, { ControlPlaneNodesLabel } from './ControlPlaneNodesDropdown'; export type OcmClusterDetailsFormFieldsProps = { forceOpenshiftVersion?: string; @@ -58,7 +59,7 @@ export const OcmClusterDetailsFormFields = ({ clusterId, }: OcmClusterDetailsFormFieldsProps) => { const { values, setFieldValue } = useFormikContext(); - const { useRedHatDnsService } = values; + const { highAvailabilityMode, useRedHatDnsService } = values; const nameInputRef = React.useRef(); const { t } = useTranslation(); @@ -155,6 +156,10 @@ export const OcmClusterDetailsFormFields = ({ cpuArchitectures={cpuArchitectures} /> )} + {!isPullSecretSet && } @@ -171,17 +176,10 @@ export const OcmClusterDetailsFormFields = ({ onChange={handleExternalPartnerIntegrationsChange} cpuArchitecture={values.cpuArchitecture as SupportedCpuArchitecture} featureSupportLevelData={featureSupportLevelData} - isSNO={values.controlPlaneCount === '1'} + isSNO={isSNO({ highAvailabilityMode })} /> )} - {clusterExists ? ( - }> - {values.controlPlaneCount} - - ) : ( - - )} { @@ -197,7 +195,7 @@ export const OcmClusterDetailsFormFields = ({ diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/OcmSNOControlGroup.tsx b/libs/ui-lib/lib/ocm/components/clusterConfiguration/OcmSNOControlGroup.tsx new file mode 100644 index 0000000000..5e9309159f --- /dev/null +++ b/libs/ui-lib/lib/ocm/components/clusterConfiguration/OcmSNOControlGroup.tsx @@ -0,0 +1,62 @@ +import React from 'react'; +import { ClusterDetailsValues } from '../../../common/components/clusterWizard/types'; +import OcmSingleNodeCheckbox from './OcmSingleNodeCheckbox'; +import { + NewFeatureSupportLevelMap, + useNewFeatureSupportLevel, +} from '../../../common/components/newFeatureSupportLevels'; +import OcmSNODisclaimer from './OcmSNODisclaimer'; + +type OcmSNOControlGroupProps = { + highAvailabilityMode: ClusterDetailsValues['highAvailabilityMode']; + featureSupportLevelData?: NewFeatureSupportLevelMap; +}; + +const OcmSNOControlGroup = ({ + highAvailabilityMode, + featureSupportLevelData, +}: OcmSNOControlGroupProps) => { + const newFeatureSupportLevelContext = useNewFeatureSupportLevel(); + + const snoSupportLevel = newFeatureSupportLevelContext.getFeatureSupportLevel( + 'SNO', + featureSupportLevelData, + ); + const snoExpansion = newFeatureSupportLevelContext.isFeatureSupported( + 'SINGLE_NODE_EXPANSION', + featureSupportLevelData, + ); + const isDisabled = newFeatureSupportLevelContext.isFeatureDisabled( + 'SNO', + featureSupportLevelData, + ); + const disabledReason = newFeatureSupportLevelContext.getFeatureDisabledReason( + 'SNO', + featureSupportLevelData, + ); + + const isSupportedVersionAvailable = newFeatureSupportLevelContext.isFeatureSupported( + 'SNO', + featureSupportLevelData, + ); + return ( + <> + + {highAvailabilityMode === 'None' && snoSupportLevel && ( + + )} + + ); +}; + +export default OcmSNOControlGroup; diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx b/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx index 0cab41b568..da450d1e0e 100644 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx +++ b/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx @@ -10,10 +10,7 @@ import { PopoverIcon, } from '../../../../common'; import CnvHostRequirements from './CnvHostRequirements'; -import { - getCnvDisabledWithMtvReason, - getCnvIncompatibleWithLvmReason, -} from '../../featureSupportLevels/featureStateUtils'; +import { getCnvIncompatibleWithLvmReason } from '../../featureSupportLevels/featureStateUtils'; import { OcmCheckboxField } from '../../ui/OcmFormFields'; import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels'; import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge'; @@ -86,9 +83,6 @@ const CnvCheckbox = ({ const lvmSupport = featureSupportLevel.getFeatureSupportLevel('LVM'); reason = getCnvIncompatibleWithLvmReason(values, lvmSupport); } - if (!reason) { - reason = getCnvDisabledWithMtvReason(values); - } setDisabledReason(reason); }, [values, featureSupportLevel]); diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx b/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx index 3d8b21265c..f78e694147 100644 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx +++ b/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx @@ -55,9 +55,8 @@ const MtvCheckbox = ({ clusterId }: { clusterId: ClusterOperatorProps['clusterId const fieldId = getFieldId(Mtv_FIELD_NAME, 'input'); const [disabledReason, setDisabledReason] = useState(); - const selectCNVOperator = (checked: boolean) => { + const selectCNVOperator = (checked: boolean) => setFieldValue('useContainerNativeVirtualization', checked); - }; React.useEffect(() => { const disabledReason = featureSupportLevelContext.getFeatureDisabledReason('MTV'); diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx b/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx deleted file mode 100644 index 27466ab6be..0000000000 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import React, { useState } from 'react'; -import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core'; -import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon'; -import { useFormikContext } from 'formik'; -import { - getFieldId, - PopoverIcon, - OSC_REQUIREMENTS_LINK, - OSC_LINK, - OperatorsValues, -} from '../../../../common'; -import { OcmCheckboxField } from '../../ui/OcmFormFields'; -import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels'; -import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge'; -import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service'; - -const OSC_FIELD_NAME = 'useOsc'; - -type OscLabelProps = { - disabledReason?: string; - supportLevel?: SupportLevel; -}; - -const OscLabel = ({ disabledReason, supportLevel }: OscLabelProps) => { - return ( - <> - - - Learn more about the requirements for OpenShift sandboxed containers{' '} - . - - } - /> - - - ); -}; - -const OscHelperText = () => { - return ( - - - OpenShift sandboxed containers support for OpenShift Container Platform provides users with - built-in support for running Kata Containers as an additional optional runtime. It provides - an additional virtualization machine(VM) isolation layer for pods.{' '} - - {'Learn more'} - - - - ); -}; - -const OscCheckbox = () => { - const featureSupportLevel = useNewFeatureSupportLevel(); - const { values } = useFormikContext(); - const fieldId = getFieldId(OSC_FIELD_NAME, 'input'); - const [disabledReason, setDisabledReason] = useState(); - - React.useEffect(() => { - const disabledReason = featureSupportLevel.getFeatureDisabledReason('OSC'); - setDisabledReason(disabledReason); - }, [values, featureSupportLevel]); - - return ( - - - } - isDisabled={!!disabledReason} - helperText={} - /> - - ); -}; - -export default OscCheckbox; diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/review/ReviewStep.tsx b/libs/ui-lib/lib/ocm/components/clusterConfiguration/review/ReviewStep.tsx index f27349ede8..ef2d9f1ae3 100644 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/review/ReviewStep.tsx +++ b/libs/ui-lib/lib/ocm/components/clusterConfiguration/review/ReviewStep.tsx @@ -16,7 +16,7 @@ import './ReviewCluster.css'; import { Cluster } from '@openshift-assisted/types/assisted-installer-service'; const ReviewStep = ({ cluster }: { cluster: Cluster }) => { - const { addAlert, clearAlerts } = useAlerts(); + const { addAlert } = useAlerts(); const clusterWizardContext = useClusterWizardContext(); const { isViewerMode } = useSelector(selectCurrentClusterPermissionsState); const [isStartingInstallation, setIsStartingInstallation] = useStateSafely(false); @@ -40,7 +40,6 @@ const ReviewStep = ({ cluster }: { cluster: Cluster }) => { }, [cluster, isStartingInstallation, isViewerMode, clusterWizardContext]); const handleClusterInstall = async () => { - clearAlerts(); setIsStartingInstallation(true); try { const { data } = await ClustersService.install(cluster.id, cluster.tags); diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.ts b/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.ts index 8ed430641f..7c7f547a2a 100644 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.ts +++ b/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.ts @@ -112,6 +112,8 @@ const getNmstateObject = ( ), ); } + // eslint-disable-next-line no-console + console.log(interfaces); } routeConfigs.push( diff --git a/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.ts b/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.ts index de449866fb..a998de1f71 100644 --- a/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.ts +++ b/libs/ui-lib/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.ts @@ -119,7 +119,7 @@ export const getInterface = ( name: nicName, type: NmstateInterfaceType.BOND, state: 'up', - ...(networkWide.useVlan ? {} : protocolConfigs), + ...protocolConfigs, 'link-aggregation': { mode: bondType, options: { diff --git a/libs/ui-lib/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx b/libs/ui-lib/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx index c65a2c8ccd..62d40c2218 100644 --- a/libs/ui-lib/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +++ b/libs/ui-lib/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx @@ -145,45 +145,35 @@ const AssistedInstallerDetailCard = ({ const isOutdatedClusterData = uiState === ResourceUIState.POLLING_ERROR; - const clusterDetailCard = ( - - - - - } - errorUI={} - > - } - cluster={cluster} - cpuArchitecture={infraEnv.cpuArchitecture as CpuArchitecture} - openshiftVersion={cluster.openshiftVersion} - platformType={cluster.platform?.type} - > - {content} - - {isOutdatedClusterData && } - - - - - - - - - ); - return ( - <> - {history ? ( - - {clusterDetailCard} - - ) : ( - clusterDetailCard - )} - + + + + + + } + errorUI={} + > + } + cluster={cluster} + cpuArchitecture={infraEnv.cpuArchitecture as CpuArchitecture} + openshiftVersion={cluster.openshiftVersion} + platformType={cluster.platform?.type} + > + {content} + + {isOutdatedClusterData && } + + + + + + + + + ); }; diff --git a/libs/ui-lib/lib/ocm/components/clusterWizard/Operators.tsx b/libs/ui-lib/lib/ocm/components/clusterWizard/Operators.tsx index 832f13d5ac..5a7384bce3 100644 --- a/libs/ui-lib/lib/ocm/components/clusterWizard/Operators.tsx +++ b/libs/ui-lib/lib/ocm/components/clusterWizard/Operators.tsx @@ -11,7 +11,6 @@ import { OPERATOR_NAME_MTV, OPERATOR_NAME_ODF, OPERATOR_NAME_OPENSHIFT_AI, - OPERATOR_NAME_OSC, OperatorsValues, selectMonitoredOperators, useAlerts, @@ -39,7 +38,6 @@ export const getOperatorsInitialValues = ( useMultiClusterEngine: isOperatorEnabled([OPERATOR_NAME_MCE]), useMigrationToolkitforVirtualization: isOperatorEnabled([OPERATOR_NAME_MTV]), useOpenShiftAI: isOperatorEnabled([OPERATOR_NAME_OPENSHIFT_AI]), - useOsc: isOperatorEnabled([OPERATOR_NAME_OSC]), }; }; diff --git a/libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx b/libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx index 282df2d72d..6c6d421f7c 100644 --- a/libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx +++ b/libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx @@ -10,7 +10,6 @@ import { selectIsCurrentClusterSNO } from '../../store/slices/current-cluster/se import { isOCPVersionEqualsOrMajor } from '../utils'; import MtvOperatorCheckbox from '../clusterConfiguration/operators/MtvOperatorCheckbox'; import OpenShiftAICheckbox from '../clusterConfiguration/operators/OpenShiftAICheckbox'; -import OscCheckbox from '../clusterConfiguration/operators/OscCheckbox'; export const OperatorsStep = (props: ClusterOperatorProps) => { const isSNO = useSelector(selectIsCurrentClusterSNO); @@ -26,9 +25,6 @@ export const OperatorsStep = (props: ClusterOperatorProps) => { - - - { ) : ( {isSNO ? : } )} - + - ); }; diff --git a/libs/ui-lib/lib/ocm/components/clusterWizard/_wizardTransition.test.ts b/libs/ui-lib/lib/ocm/components/clusterWizard/_wizardTransition.test.ts index ea4a15e07f..6bd8318632 100644 --- a/libs/ui-lib/lib/ocm/components/clusterWizard/_wizardTransition.test.ts +++ b/libs/ui-lib/lib/ocm/components/clusterWizard/_wizardTransition.test.ts @@ -82,11 +82,6 @@ const validationInfoHostsDisovery: ValidationsInfo = { message: 'a validation message', status: 'success', }, - { - id: 'osc-requirements-satisfied', - message: 'a validation message', - status: 'success', - }, { id: 'api-vips-defined', message: 'a validation unrelated to the canNextHostDiscovery', @@ -195,16 +190,6 @@ const flatValidationHostsDiscovery: HostValidation[] = [ message: 'a host validation message', status: 'success', }, - { - id: 'osc-requirements-satisfied', - message: 'a host validation message', - status: 'success', - }, - { - id: 'mtu-valid', - message: 'a host validation message', - status: 'success', - }, ]; const flatValidationHostsStorage: HostValidation[] = [ diff --git a/libs/ui-lib/lib/ocm/components/clusterWizard/wizardTransition.ts b/libs/ui-lib/lib/ocm/components/clusterWizard/wizardTransition.ts index 861941e924..22009f3ac4 100644 --- a/libs/ui-lib/lib/ocm/components/clusterWizard/wizardTransition.ts +++ b/libs/ui-lib/lib/ocm/components/clusterWizard/wizardTransition.ts @@ -173,7 +173,6 @@ const hostDiscoveryStepValidationsMap: WizardStepValidationMap = { 'cnv-requirements-satisfied', 'nvidia-gpu-requirements-satisfied', 'openshift-ai-requirements-satisfied', - 'osc-requirements-satisfied', ], }, host: { @@ -188,7 +187,6 @@ const hostDiscoveryStepValidationsMap: WizardStepValidationMap = { 'cnv-requirements-satisfied', 'nvidia-gpu-requirements-satisfied', 'openshift-ai-requirements-satisfied', - 'osc-requirements-satisfied', ], }, softValidationIds: ['no-skip-installation-disk', 'no-skip-missing-disk'], @@ -227,7 +225,7 @@ const networkingStepValidationsMap: WizardStepValidationMap = { // Alternatively we would have to whitelist network validations instead of using group // TODO(mlibra): remove that container-images-available from soft validations and let backend drive it via disabling it. // Depends on: https://issues.redhat.com/browse/MGMT-5265 - softValidationIds: ['ntp-synced', 'container-images-available', 'mtu-valid'], + softValidationIds: ['ntp-synced', 'container-images-available'], }; const reviewStepValidationsMap: WizardStepValidationMap = { diff --git a/libs/ui-lib/lib/ocm/components/featureSupportLevels/featureStateUtils.ts b/libs/ui-lib/lib/ocm/components/featureSupportLevels/featureStateUtils.ts index f8158f85b6..3e22501867 100644 --- a/libs/ui-lib/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +++ b/libs/ui-lib/lib/ocm/components/featureSupportLevels/featureStateUtils.ts @@ -19,8 +19,6 @@ const LVMS_OPERATOR_LABEL = 'Logical Volume Manager Storage'; const LVM_OPERATOR_LABEL = 'Logical Volume Manager'; const ODF_OPERATOR_LABEL = 'OpenShift Data Foundation'; const OPENSHIFT_AI_OPERATOR_LABEL = 'OpenShift AI'; -const MTV_OPERATOR_LABEL = 'Migration Toolkit for Virtualization'; -const OSC_OPERATOR_LABEL = 'OpenShift sandboxed containers'; export const clusterExistsReason = 'This option is not editable after the draft cluster is created'; @@ -136,20 +134,6 @@ const getLvmDisabledReason = ( return undefined; }; -const getOscDisabledReason = ( - cluster: Cluster | undefined, - activeFeatureConfiguration: ActiveFeatureConfiguration | undefined, - isSupported: boolean, -) => { - if (!cluster) { - return undefined; - } - if (!isSupported) { - return `${OSC_OPERATOR_LABEL} is not supported in this OpenShift version.`; - } - return undefined; -}; - const getNetworkTypeSelectionDisabledReason = (cluster: Cluster | undefined) => { if (!cluster) { return undefined; @@ -205,9 +189,6 @@ export const getNewFeatureDisabledReason = ( case 'OPENSHIFT_AI': { return getOpenShiftAIDisabledReason(cluster, activeFeatureConfiguration, isSupported); } - case 'OSC': { - return getOscDisabledReason(cluster, activeFeatureConfiguration, isSupported); - } case 'NETWORK_TYPE_SELECTION': { return getNetworkTypeSelectionDisabledReason(cluster); } @@ -307,12 +288,3 @@ const getOpenShiftAIDisabledReason = ( } return undefined; }; - -export const getCnvDisabledWithMtvReason = (operatorValues: OperatorsValues) => { - const mustDisableCnv = - operatorValues.useContainerNativeVirtualization && - operatorValues.useMigrationToolkitforVirtualization; - return mustDisableCnv - ? `Currently, you need to install ${CNV_OPERATOR_LABEL} operator at the same time as ${MTV_OPERATOR_LABEL} operator.` - : undefined; -}; diff --git a/libs/ui-lib/lib/ocm/sentry.ts b/libs/ui-lib/lib/ocm/sentry.ts index 2f3c06c1da..a3bdb2c711 100644 --- a/libs/ui-lib/lib/ocm/sentry.ts +++ b/libs/ui-lib/lib/ocm/sentry.ts @@ -1,12 +1,11 @@ import * as Sentry from '@sentry/browser'; -import { SeverityLevel } from '@sentry/types'; import { isInOcm } from '../common/api/axiosClient'; export const captureException = ( // eslint-disable-next-line @typescript-eslint/no-explicit-any error: any, message?: string, - severity: SeverityLevel = 'error', + severity: Sentry.Severity = Sentry.Severity.Error, ) => { if (isInOcm) { message && Sentry.captureMessage(message, severity); diff --git a/libs/ui-lib/lib/ocm/services/ClusterDetailsService.ts b/libs/ui-lib/lib/ocm/services/ClusterDetailsService.ts index d91b363d37..8a5109b507 100644 --- a/libs/ui-lib/lib/ocm/services/ClusterDetailsService.ts +++ b/libs/ui-lib/lib/ocm/services/ClusterDetailsService.ts @@ -21,7 +21,6 @@ import { ManagedDomain, PlatformType, } from '@openshift-assisted/types/assisted-installer-service'; -import toNumber from 'lodash-es/toNumber'; const getNewClusterCpuArchitecture = (urlSearchParams: string) => { const params = new URLSearchParams(urlSearchParams); @@ -37,7 +36,7 @@ const ClusterDetailsService = { getClusterCreateParams(values: OcmClusterDetailsValues): ClusterCreateParamsWithStaticNetworking { const params: ClusterCreateParamsWithStaticNetworking = { name: values.name, - controlPlaneCount: toNumber(values.controlPlaneCount), + highAvailabilityMode: values.highAvailabilityMode, openshiftVersion: values.openshiftVersion, pullSecret: values.pullSecret, baseDnsDomain: values.baseDnsDomain, diff --git a/libs/ui-lib/lib/ocm/services/OperatorsService.tsx b/libs/ui-lib/lib/ocm/services/OperatorsService.tsx index d2cab1addc..c2cff85759 100644 --- a/libs/ui-lib/lib/ocm/services/OperatorsService.tsx +++ b/libs/ui-lib/lib/ocm/services/OperatorsService.tsx @@ -8,7 +8,6 @@ import { OPERATOR_NAME_MCE, OPERATOR_NAME_MTV, OPERATOR_NAME_OPENSHIFT_AI, - OPERATOR_NAME_OSC, } from '../../common'; import { getOlmOperatorCreateParamsByName } from '../components/clusters/utils'; import { getKeys } from '../../common/utils'; @@ -40,7 +39,6 @@ const OperatorsService = { setOperator(OPERATOR_NAME_MCE, values.useMultiClusterEngine); setOperator(OPERATOR_NAME_MTV, values.useMigrationToolkitforVirtualization); setOperator(OPERATOR_NAME_OPENSHIFT_AI, values.useOpenShiftAI); - setOperator(OPERATOR_NAME_OSC, values.useOsc); // TODO: remove following once the LSO option is exposed to the user if (!hasActiveOperators(values)) { diff --git a/yarn.lock b/yarn.lock index a4353631d2..752aae8fd2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -758,7 +758,7 @@ __metadata: "@patternfly/react-table": 5.2.0 "@patternfly/react-tokens": 5.2.0 "@reduxjs/toolkit": ^1.9.1 - "@sentry/browser": ^7.119 + "@sentry/browser": ^5.9 || ^6 "@tsconfig/vite-react": ^1.0.1 "@types/react": 17.0.x "@vitejs/plugin-react-swc": ^3.0.1 @@ -1299,103 +1299,67 @@ __metadata: languageName: node linkType: hard -"@sentry-internal/feedback@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry-internal/feedback@npm:7.119.1" - dependencies: - "@sentry/core": 7.119.1 - "@sentry/types": 7.119.1 - "@sentry/utils": 7.119.1 - checksum: 12e29e896f590ae437744311ff921f8cd912b4e9c7b5d13be574badc908364ee493548907473f1957ffdcdc7a399141d7b8723aa402a70bdf59bbd929258af37 - languageName: node - linkType: hard - -"@sentry-internal/replay-canvas@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry-internal/replay-canvas@npm:7.119.1" - dependencies: - "@sentry/core": 7.119.1 - "@sentry/replay": 7.119.1 - "@sentry/types": 7.119.1 - "@sentry/utils": 7.119.1 - checksum: cb9058a67f268b7b08373744c84281ec19f2106932f604ecb14fdc1860d26a8ed0f7ef3e4db09ec30e15af5ed46d34f05babf2e39b2b42b39c3659d268c5a45f - languageName: node - linkType: hard - -"@sentry-internal/tracing@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry-internal/tracing@npm:7.119.1" - dependencies: - "@sentry/core": 7.119.1 - "@sentry/types": 7.119.1 - "@sentry/utils": 7.119.1 - checksum: 766fcb7903d69c6289e543f971039972b7bcde790f7277cce82f244cb7da6b0f8f32f7396018e8cb43eb8976d1682aae23f40e7c110b01ca3549df56df4df831 - languageName: node - linkType: hard - -"@sentry/browser@npm:^7.119": - version: 7.119.1 - resolution: "@sentry/browser@npm:7.119.1" +"@sentry/browser@npm:^5.9 || ^6": + version: 6.19.7 + resolution: "@sentry/browser@npm:6.19.7" dependencies: - "@sentry-internal/feedback": 7.119.1 - "@sentry-internal/replay-canvas": 7.119.1 - "@sentry-internal/tracing": 7.119.1 - "@sentry/core": 7.119.1 - "@sentry/integrations": 7.119.1 - "@sentry/replay": 7.119.1 - "@sentry/types": 7.119.1 - "@sentry/utils": 7.119.1 - checksum: c4659c6dba099bd48f452c0cc87d2d16b3a2c4cfb59300da257bde4cf0d6928cc7e79543e2c0e8fcb1c7c9d9b00bd61e6a0c2eaefa48d4be33fef1f3d6a7dd75 + "@sentry/core": 6.19.7 + "@sentry/types": 6.19.7 + "@sentry/utils": 6.19.7 + tslib: ^1.9.3 + checksum: 071d00c76c2d0384580474c634c58c6196bbd1a3cf510da1309bd1565c57df7422fca8ceb717db189fa557f2c711a21664ee1ab935dfd9869faf416d388e6f78 languageName: node linkType: hard -"@sentry/core@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry/core@npm:7.119.1" +"@sentry/core@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/core@npm:6.19.7" dependencies: - "@sentry/types": 7.119.1 - "@sentry/utils": 7.119.1 - checksum: cb2c9006bc22bd4039f7a13972b96725f18270bc3342c98c40f8f631c1c29033d93f2169305b0f8e9c695afad39a3b03f03c6caa4ac85e4bb85292f74e73c9bd + "@sentry/hub": 6.19.7 + "@sentry/minimal": 6.19.7 + "@sentry/types": 6.19.7 + "@sentry/utils": 6.19.7 + tslib: ^1.9.3 + checksum: d212e8ef07114549de4a93b81f8bfa217ca1550ca7a5eeaa611e5629faef78ff72663ce561ffa2cff48f3dc556745ef65177044f9965cdd3cbccf617cf3bf675 languageName: node linkType: hard -"@sentry/integrations@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry/integrations@npm:7.119.1" +"@sentry/hub@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/hub@npm:6.19.7" dependencies: - "@sentry/core": 7.119.1 - "@sentry/types": 7.119.1 - "@sentry/utils": 7.119.1 - localforage: ^1.8.1 - checksum: 68d3fa08e9f9584394ff8c15b2d49348867a289642c956649d78c06cc1e91e4d9b90c418f8f3ffd0c4554a472663f97a677e8a1897c80189ee862bcf6d1f2a61 + "@sentry/types": 6.19.7 + "@sentry/utils": 6.19.7 + tslib: ^1.9.3 + checksum: 10bb1c5cba1b0f1e27a3dd0a186c22f94aeaf11c4662890ab07b2774f46f46af78d61e3ba71d76edc750a7b45af86edd032f35efecdb4efa2eaf551080ccdcb1 languageName: node linkType: hard -"@sentry/replay@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry/replay@npm:7.119.1" +"@sentry/minimal@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/minimal@npm:6.19.7" dependencies: - "@sentry-internal/tracing": 7.119.1 - "@sentry/core": 7.119.1 - "@sentry/types": 7.119.1 - "@sentry/utils": 7.119.1 - checksum: 85fec3e01466e16c8b34c06799f8a256ad301de90d61498349f9aebedeeb6b3069d27247143abee78183c2389232a2e4ce2b60eeedcff6615d1425e1d4322f9a + "@sentry/hub": 6.19.7 + "@sentry/types": 6.19.7 + tslib: ^1.9.3 + checksum: 9153ac426ee056fc34c5be898f83d74ec08f559d69f544c5944ec05e584b62ed356b92d1a9b08993a7022ad42b5661c3d72881221adc19bee5fc1af3ad3864a8 languageName: node linkType: hard -"@sentry/types@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry/types@npm:7.119.1" - checksum: b04d54e168d57c9d7661caac0c2763200e956b18cb2103e72ec843bc4355ccb9a18f558e0542395b93667ab63b9745f680ed623d6e6148775e85a55a024bd40d +"@sentry/types@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/types@npm:6.19.7" + checksum: f46ef74a33376ad6ea9b128115515c58eb9369d89293c60aa67abca26b5d5d519aa4d0a736db56ae0d75ffd816643d62187018298523cbc2e6c2fb3a6b2a9035 languageName: node linkType: hard -"@sentry/utils@npm:7.119.1": - version: 7.119.1 - resolution: "@sentry/utils@npm:7.119.1" +"@sentry/utils@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/utils@npm:6.19.7" dependencies: - "@sentry/types": 7.119.1 - checksum: cdde755040c3314a4ea842a753bdf676a957478083de14e68232a1fd0f64a5b1cbfe44a223eb53e3fee93fa8a431bcd3ce0f4c6ce43ad464374217716c00a6a3 + "@sentry/types": 6.19.7 + tslib: ^1.9.3 + checksum: a000223b9c646c64e3565e79cace1eeb75114342b768367c4dddd646476c215eb1bddfb70c63f05e2352d3bce2d7d415344e4757a001605d0e01ac74da5dd306 languageName: node linkType: hard @@ -5617,13 +5581,6 @@ __metadata: languageName: node linkType: hard -"immediate@npm:~3.0.5": - version: 3.0.6 - resolution: "immediate@npm:3.0.6" - checksum: f9b3486477555997657f70318cc8d3416159f208bec4cca3ff3442fd266bc23f50f0c9bd8547e1371a6b5e82b821ec9a7044a4f7b944798b25aa3cc6d5e63e62 - languageName: node - linkType: hard - "immer@npm:^9.0.21": version: 9.0.21 resolution: "immer@npm:9.0.21" @@ -6453,15 +6410,6 @@ __metadata: languageName: node linkType: hard -"lie@npm:3.1.1": - version: 3.1.1 - resolution: "lie@npm:3.1.1" - dependencies: - immediate: ~3.0.5 - checksum: 6da9f2121d2dbd15f1eca44c0c7e211e66a99c7b326ec8312645f3648935bc3a658cf0e9fa7b5f10144d9e2641500b4f55bd32754607c3de945b5f443e50ddd1 - languageName: node - linkType: hard - "listr2@npm:^3.8.3": version: 3.14.0 resolution: "listr2@npm:3.14.0" @@ -6490,15 +6438,6 @@ __metadata: languageName: node linkType: hard -"localforage@npm:^1.8.1": - version: 1.10.0 - resolution: "localforage@npm:1.10.0" - dependencies: - lie: 3.1.1 - checksum: f2978b434dafff9bcb0d9498de57d97eba165402419939c944412e179cab1854782830b5ec196212560b22712d1dd03918939f59cf1d4fc1d756fca7950086cf - languageName: node - linkType: hard - "locate-path@npm:^6.0.0": version: 6.0.0 resolution: "locate-path@npm:6.0.0" @@ -6958,11 +6897,11 @@ __metadata: linkType: hard "nanoid@npm:^3.3.7": - version: 3.3.8 - resolution: "nanoid@npm:3.3.8" + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: dfe0adbc0c77e9655b550c333075f51bb28cfc7568afbf3237249904f9c86c9aaaed1f113f0fddddba75673ee31c758c30c43d4414f014a52a7a626efc5958c9 + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard