From dfc7694fb93d31ab009e9daaaf784cd97035cf50 Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Tue, 4 Nov 2025 17:17:01 +0000 Subject: [PATCH] Refactor subnet discovery logic to allow auto-detection and improve error handling --- src/components/ClusterNodesComponent.tsx | 13 +++++++------ src/hooks/useNodes.ts | 12 ++---------- src/services/api/nodes.ts | 14 +++++--------- src/test/utils/nodeFormTestUtils.tsx | 4 ---- 4 files changed, 14 insertions(+), 29 deletions(-) diff --git a/src/components/ClusterNodesComponent.tsx b/src/components/ClusterNodesComponent.tsx index b0972b4..032d04a 100644 --- a/src/components/ClusterNodesComponent.tsx +++ b/src/components/ClusterNodesComponent.tsx @@ -47,7 +47,7 @@ export function ClusterNodesComponent() { status: clusterStatus } = useCluster(currentInstance); - const [discoverSubnet, setDiscoverSubnet] = useState('192.168.8.0/24'); + const [discoverSubnet, setDiscoverSubnet] = useState(''); const [addNodeIp, setAddNodeIp] = useState(''); const [discoverError, setDiscoverError] = useState(null); const [detectError, setDetectError] = useState(null); @@ -92,9 +92,9 @@ export function ClusterNodesComponent() { if (prevDiscoveryActive === true && isActive === false && discoveryStatus) { const count = discoveryStatus.nodes_found?.length || 0; if (count === 0) { - setDiscoverSuccess(`Discovery complete! No nodes were found in the subnet.`); + setDiscoverSuccess(`Discovery complete! No nodes were found.`); } else { - setDiscoverSuccess(`Discovery complete! Found ${count} node${count !== 1 ? 's' : ''} in subnet.`); + setDiscoverSuccess(`Discovery complete! Found ${count} node${count !== 1 ? 's' : ''}.`); } setDiscoverError(null); refetch(); @@ -224,7 +224,8 @@ export function ClusterNodesComponent() { const handleDiscover = () => { setDiscoverError(null); setDiscoverSuccess(null); - discover(discoverSubnet); + // Pass subnet only if it's not empty, otherwise auto-detect + discover(discoverSubnet || undefined); }; @@ -421,7 +422,7 @@ export function ClusterNodesComponent() { Discover Nodes on Network

- Scan a subnet to find nodes in maintenance mode + Scan a specific subnet or leave empty to auto-detect all local networks

@@ -429,7 +430,7 @@ export function ClusterNodesComponent() { type="text" value={discoverSubnet} onChange={(e) => setDiscoverSubnet(e.target.value)} - placeholder="192.168.8.0/24" + placeholder="192.168.1.0/24 (optional - leave empty to auto-detect)" className="flex-1" />