@openshift-assisted/ui-lib
Version:
React component library for the Assisted Installer UI
62 lines • 3.89 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useClusterStatusVarieties = void 0;
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importDefault(require("react"));
const common_1 = require("../../../common");
const utils_1 = require("./utils");
const apis_1 = require("../../services/apis");
const ClusterDetailStatusMessages_1 = tslib_1.__importDefault(require("./ClusterDetailStatusMessages"));
const react_core_1 = require("@patternfly/react-core");
const utils_2 = require("../../../common/utils");
const useClusterStatusVarieties = (cluster) => {
const [credentials, setCredentials] = react_1.default.useState();
const [credentialsError, setCredentialsError] = react_1.default.useState('');
const clusterId = cluster === null || cluster === void 0 ? void 0 : cluster.id;
const clusterStatus = cluster === null || cluster === void 0 ? void 0 : cluster.status;
const clusterMonitoredOperators = (0, common_1.selectMonitoredOperators)(cluster === null || cluster === void 0 ? void 0 : cluster.monitoredOperators);
const olmOperators = (0, common_1.selectOlmOperators)(cluster);
const failedOlmOperators = olmOperators.filter((o) => o.status === 'failed');
const consoleOperator = react_1.default.useMemo(() => clusterMonitoredOperators.find((o) => o.name === 'console'), [clusterMonitoredOperators]);
const fetchCredentials = react_1.default.useCallback(() => {
const fetch = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
setCredentialsError('');
if (!clusterId) {
return;
}
try {
const response = yield apis_1.ClustersAPI.getCredentials(clusterId);
setCredentials(response.data);
}
catch (err) {
setCredentialsError((0, utils_2.getErrorMessage)(err));
}
});
void fetch();
}, [clusterId]);
const consoleOperatorStatus = consoleOperator === null || consoleOperator === void 0 ? void 0 : consoleOperator.status;
react_1.default.useEffect(() => {
if ((!consoleOperatorStatus && clusterStatus === 'installed') || // Retain backwards compatibility with clusters which don't have monitored clusters
consoleOperatorStatus === 'available') {
fetchCredentials();
}
}, [clusterStatus, consoleOperatorStatus, fetchCredentials]);
return {
credentials,
credentialsError,
olmOperators,
failedOlmOperators,
consoleOperator,
fetchCredentials,
};
};
exports.useClusterStatusVarieties = useClusterStatusVarieties;
const ClusterDetailStatusVarieties = ({ cluster, clusterVarieties, showAddHostsInfo = true, }) => {
const { credentials, credentialsError, consoleOperator, fetchCredentials } = clusterVarieties;
const showClusterCredentials = (consoleOperator === null || consoleOperator === void 0 ? void 0 : consoleOperator.status) === 'available' || (!consoleOperator && cluster.status === 'installed'); // Retain backwards compatibility with clusters which don't have monitored clusters
return (react_1.default.createElement(react_core_1.Grid, { hasGutter: true },
showClusterCredentials && (react_1.default.createElement(common_1.ClusterCredentials, { cluster: cluster, credentials: credentials, error: !!credentialsError, retry: fetchCredentials, idPrefix: (0, utils_1.getClusterDetailId)('cluster-creds'), credentialsError: credentialsError, isMceEnabled: (0, common_1.hasEnabledOperators)(cluster.monitoredOperators, common_1.OPERATOR_NAME_MCE) })),
react_1.default.createElement(ClusterDetailStatusMessages_1.default, { cluster: cluster, showAddHostsInfo: showAddHostsInfo })));
};
exports.default = ClusterDetailStatusVarieties;
//# sourceMappingURL=ClusterDetailStatusVarieties.js.map