Skip to content

Commit d0c6de0

Browse files
committed
Prevent multiple clusters being created in day 2
1 parent c9c87ad commit d0c6de0

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

libs/ui-lib/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx

+13-9
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ export const HostsClusterDetailTabContent = ({
3333
const [day2Cluster, setDay2Cluster] = useStateSafely<Cluster | null>(null);
3434
const pullSecret = usePullSecret();
3535

36+
// eslint-disable-next-line react-hooks/exhaustive-deps
37+
const ocmClusterMemo = React.useMemo(() => ocmCluster, []);
38+
3639
const handleClickTryAgainLink = React.useCallback(() => {
3740
setError(undefined);
3841
setDay2Cluster(null);
@@ -53,19 +56,21 @@ export const HostsClusterDetailTabContent = ({
5356
setDay2Cluster(null);
5457
return;
5558
}
56-
const day1ClusterHostCount = ocmCluster?.metrics?.nodes?.total || 0;
57-
const openshiftClusterId = Day2ClusterService.getOpenshiftClusterId(ocmCluster);
59+
60+
const day1ClusterHostCount = ocmClusterMemo?.metrics?.nodes?.total || 0;
61+
const openshiftClusterId = Day2ClusterService.getOpenshiftClusterId(ocmClusterMemo);
5862
if (day1ClusterHostCount === 0 || !openshiftClusterId) {
5963
setError(<UnableToAddHostsError onTryAgain={handleClickTryAgainLink} />);
64+
return;
6065
}
6166

6267
if (!day2Cluster && pullSecret) {
63-
const { apiVipDnsname, errorType } = getApiVipDnsName(ocmCluster);
68+
const { apiVipDnsname, errorType } = getApiVipDnsName(ocmClusterMemo);
6469
if (errorType) {
6570
const wrongUrlMessage =
6671
errorType === 'console'
67-
? `Cluster Console URL is not valid (${ocmCluster.console?.url || ''})`
68-
: `Cluster API URL is not valid (${ocmCluster.api?.url || ''})`;
72+
? `Cluster Console URL is not valid (${ocmClusterMemo.console?.url || ''})`
73+
: `Cluster API URL is not valid (${ocmClusterMemo.api?.url || ''})`;
6974
setError(
7075
<>
7176
{wrongUrlMessage}, you can{' '}
@@ -85,11 +90,11 @@ export const HostsClusterDetailTabContent = ({
8590

8691
const loadDay2Cluster = async () => {
8792
try {
88-
const day2Cluster = await Day2ClusterService.fetchCluster(ocmCluster, pullSecret);
93+
const day2Cluster = await Day2ClusterService.fetchCluster(ocmClusterMemo, pullSecret);
8994

9095
const aiCluster = Day2ClusterService.completeAiClusterWithOcmCluster(
9196
day2Cluster,
92-
ocmCluster,
97+
ocmClusterMemo,
9398
);
9499
setDay2Cluster(aiCluster ?? null);
95100
} catch (e) {
@@ -103,13 +108,12 @@ export const HostsClusterDetailTabContent = ({
103108
/>,
104109
);
105110
}
106-
return;
107111
}
108112
};
109113

110114
void loadDay2Cluster();
111115
}
112-
}, [ocmCluster, pullSecret, day2Cluster, setDay2Cluster, isVisible, handleClickTryAgainLink]);
116+
}, [pullSecret, day2Cluster, setDay2Cluster, isVisible, handleClickTryAgainLink, ocmClusterMemo]);
113117

114118
const refreshCluster = React.useCallback(async () => {
115119
if (!day2Cluster?.id) {

0 commit comments

Comments
 (0)