UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

49 lines 4.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const formik_1 = require("formik"); const react_core_1 = require("@patternfly/react-core"); const common_1 = require("../../../common"); const ClusterDeploymentHostsSelectionBasic_1 = tslib_1.__importDefault(require("./ClusterDeploymentHostsSelectionBasic")); const ClusterDeploymentHostsSelectionAdvanced_1 = tslib_1.__importDefault(require("./ClusterDeploymentHostsSelectionAdvanced")); const helpers_1 = require("../helpers"); const MinimalHWRequirements_1 = tslib_1.__importDefault(require("../Agent/MinimalHWRequirements")); const NoAgentsAlert_1 = tslib_1.__importDefault(require("../Agent/NoAgentsAlert")); const use_translation_wrapper_1 = require("../../../common/hooks/use-translation-wrapper"); const ClusterDeploymentHostsSelection = ({ agentClusterInstall, clusterDeployment, agents, aiConfigMap, onEditRole, onAutoSelectChange, onHostSelect, onSetInstallationDiskId, isNutanix, }) => { var _a, _b; const { values } = (0, formik_1.useFormikContext)(); const { autoSelectHosts } = values; const isSNOCluster = (0, helpers_1.getIsSNOCluster)(agentClusterInstall); const cdName = (_a = clusterDeployment === null || clusterDeployment === void 0 ? void 0 : clusterDeployment.metadata) === null || _a === void 0 ? void 0 : _a.name; const cdNamespace = (_b = clusterDeployment === null || clusterDeployment === void 0 ? void 0 : clusterDeployment.metadata) === null || _b === void 0 ? void 0 : _b.namespace; const cpuArchitecture = (0, helpers_1.getClusterDeploymentCpuArchitecture)(clusterDeployment); const availableAgents = react_1.default.useMemo(() => { const filtered = (0, helpers_1.getAgentsForSelection)(agents).filter((agent) => { var _a, _b, _c, _d, _e, _f; return (((_a = agent.spec.clusterDeploymentName) === null || _a === void 0 ? void 0 : _a.name) === cdName && ((_b = agent.spec.clusterDeploymentName) === null || _b === void 0 ? void 0 : _b.namespace) === cdNamespace) || (!((_c = agent.spec.clusterDeploymentName) === null || _c === void 0 ? void 0 : _c.name) && !((_d = agent.spec.clusterDeploymentName) === null || _d === void 0 ? void 0 : _d.namespace) && ((_f = (_e = agent.status) === null || _e === void 0 ? void 0 : _e.inventory.cpu) === null || _f === void 0 ? void 0 : _f.architecture) === cpuArchitecture); }); return isNutanix ? filtered.filter((a) => { var _a, _b, _c; return ((_c = (_b = (_a = a.status) === null || _a === void 0 ? void 0 : _a.inventory) === null || _b === void 0 ? void 0 : _b.systemVendor) === null || _c === void 0 ? void 0 : _c.manufacturer) === 'Nutanix'; }) : filtered; }, [agents, cdNamespace, cdName, cpuArchitecture, isNutanix]); const { t } = (0, use_translation_wrapper_1.useTranslation)(); return (react_1.default.createElement(react_core_1.Grid, { hasGutter: true }, react_1.default.createElement(react_core_1.GridItem, null, react_1.default.createElement(react_core_1.TextContent, null, isSNOCluster ? t('ai:Exactly 1 host is required, capable of functioning both as control plane and worker node.') : t('ai:At least 3 hosts are required, capable of functioning as control plane nodes.'))), aiConfigMap && (react_1.default.createElement(react_core_1.GridItem, null, react_1.default.createElement(MinimalHWRequirements_1.default, { aiConfigMap: aiConfigMap, isSNOCluster: isSNOCluster }))), react_1.default.createElement(react_core_1.GridItem, null, availableAgents.length ? (react_1.default.createElement(react_core_1.Form, null, react_1.default.createElement(common_1.SwitchField, { name: "autoSelectHosts", label: t('ai:Auto-select hosts'), onChange: onAutoSelectChange }), autoSelectHosts && (react_1.default.createElement(ClusterDeploymentHostsSelectionBasic_1.default, { availableAgents: availableAgents, isSNOCluster: isSNOCluster })), !autoSelectHosts && (react_1.default.createElement(ClusterDeploymentHostsSelectionAdvanced_1.default, { availableAgents: availableAgents, onEditRole: onEditRole, onHostSelect: onHostSelect, onSetInstallationDiskId: onSetInstallationDiskId, cpuArchitecture: cpuArchitecture })))) : (react_1.default.createElement(NoAgentsAlert_1.default, { cpuArchitecture: cpuArchitecture }))))); }; exports.default = ClusterDeploymentHostsSelection; //# sourceMappingURL=ClusterDeploymentHostsSelection.js.map