Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions src/pages/cluster-management/clusters.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,7 @@ import {
K8sStepsFromCluter
} from './components/add-worker/config';
import PoolRows from './components/pool-rows';
import {
ClusterStatusValueMap,
ProviderType,
ProviderValueMap
} from './config';
import { ProviderType, ProviderValueMap } from './config';
import {
ClusterListItem,
CredentialListItem,
Expand Down Expand Up @@ -79,7 +75,8 @@ const Clusters: React.FC = () => {
useExpandedRowKeys(expandAtom);
const navigate = useNavigate();
const intl = useIntl();
const { handleAddWorker, AddWorkerModal, setStepList } = useAddWorker({});
const { handleAddWorker, checkDefaultCluster, AddWorkerModal, setStepList } =
useAddWorker({});

const [openAddModal, setOpenAddModal] = useState<{
open: boolean;
Expand Down Expand Up @@ -265,12 +262,12 @@ const Clusters: React.FC = () => {
dataSource.loadend &&
dataSource.dataList?.length > 0
) {
const targetCluster = dataSource.dataList.find(
(cluster) =>
cluster.state === ClusterStatusValueMap.Ready &&
!cluster.workers &&
!cluster.worker_pools?.length
);
const list = dataSource.dataList?.map((item) => ({
label: item.name,
value: item.id,
...item
}));
const targetCluster = checkDefaultCluster(list);

if (targetCluster) {
const actionMap = {
Expand All @@ -280,7 +277,7 @@ const Clusters: React.FC = () => {
};
handleSelect(
actionMap[targetCluster.provider as string],
targetCluster
targetCluster as ListItem
);
// reset session
setClusterSession(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ interface AddWorkerContextProps {
token: string;
image: string;
server_url: string;
cluster_id: number;
cluster_id: number | null;
};
registerField: (key: SummaryDataKey) => () => void;
updateField: (key: SummaryDataKey, value: any) => void;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ type AddWorkerProps = {
token: string;
image: string;
server_url: string;
cluster_id: number;
cluster_id: number | null;
[key: string]: any;
};
};
Expand Down
8 changes: 4 additions & 4 deletions src/pages/cluster-management/components/add-worker/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ type AddWorkerProps = {
stepList: StepName[];
onClusterChange?: (value: number, row?: any) => void;
onCancel: () => void;
cluster_id: number;
cluster_id: number | null;
registrationInfo?: {
token: string;
image: string;
server_url: string;
cluster_id: number;
cluster_id: number | null;
};
};

Expand All @@ -64,12 +64,12 @@ const AddWorker: React.FC<AddWorkerProps> = (props) => {
token: string;
image: string;
server_url: string;
cluster_id: number;
cluster_id: number | null;
}>({
token: '',
image: '',
server_url: '',
cluster_id: 0
cluster_id: null
});

const handleOnClusterChange = async (value: number, row?: any) => {
Expand Down
46 changes: 42 additions & 4 deletions src/pages/cluster-management/hooks/use-add-worker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ const useAddWorker = (props: {
open: boolean;
provider: ProviderType;
title: string;
cluster_id: number;
cluster_id: number | null;
}>({
open: false,
provider: null,
title: '',
cluster_id: 0
cluster_id: null
});

const handleAddWorker = async (row: ClusterListItem) => {
Expand All @@ -43,7 +43,12 @@ const useAddWorker = (props: {
open: true,
title: title,
provider: row.provider as ProviderType,
cluster_id: row.id
cluster_id: [
ProviderValueMap.Docker,
ProviderValueMap.Kubernetes
].includes(row.provider as string)
? row.id
: null
});
} catch (error: any) {
message.error(error?.message || 'Failed to fetch cluster token');
Expand All @@ -67,6 +72,38 @@ const useAddWorker = (props: {
.filter((item) => item.state === ClusterStatusValueMap.Ready);
}, [clusterList]);

const checkDefaultCluster = (
clusterList: Global.BaseOption<number, ClusterListItem>[]
) => {
// select default and ready cluster first, digitalocean no READY state
let currentData = clusterList.find(
(item) => item.is_default && item.state === ClusterStatusValueMap.Ready
);

if (!currentData) {
// select docker ready cluster
currentData = clusterList.find(
(item) =>
item.provider === ProviderValueMap.Docker &&
item.state === ClusterStatusValueMap.Ready
);
}

if (!currentData) {
// select any ready cluster
currentData = clusterList.find(
(item) => item.state === ClusterStatusValueMap.Ready
);
}

if (!currentData) {
// maybe no ready a digitalocean cluster
currentData = clusterList[0];
}

return currentData || null;
};

const AddWorkerModal = (
<AddWorker
title={openAddWorker.title}
Expand All @@ -82,14 +119,15 @@ const useAddWorker = (props: {
open: false,
provider: null,
title: '',
cluster_id: 0
cluster_id: null
})
}
></AddWorker>
);

return {
handleAddWorker,
checkDefaultCluster,
AddWorkerModal,
setStepList
};
Expand Down
27 changes: 9 additions & 18 deletions src/pages/resources/components/workers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ import useTableFetch from '@/hooks/use-table-fetch';
import PageBox from '@/pages/_components/page-box';
import { queryClusterList } from '@/pages/cluster-management/apis';
import { DockerStepsFromWorker } from '@/pages/cluster-management/components/add-worker/config';
import {
ClusterStatusValueMap,
ProviderValueMap
} from '@/pages/cluster-management/config';
import { ClusterListItem } from '@/pages/cluster-management/config/types';
import useAddWorker from '@/pages/cluster-management/hooks/use-add-worker';
import useNoResourceResult from '@/pages/llmodels/hooks/use-no-resource-result';
Expand Down Expand Up @@ -82,10 +78,11 @@ const Workers: React.FC = () => {
open: false,
currentData: null
});
const { handleAddWorker, AddWorkerModal, setStepList } = useAddWorker({
clusterList: clusterData.list,
clusterLoading: clusterData.loading
});
const { handleAddWorker, checkDefaultCluster, AddWorkerModal, setStepList } =
useAddWorker({
clusterList: clusterData.list,
clusterLoading: clusterData.loading
});

const getClusterList = async () => {
try {
Expand All @@ -105,6 +102,7 @@ const Workers: React.FC = () => {
value: item.id,
id: item.id,
state: item.state,
is_default: item.is_default,
provider: item.provider
}));
setClusterData({
Expand Down Expand Up @@ -193,16 +191,9 @@ const Workers: React.FC = () => {
});

const handleOnAddWorker = () => {
let currentData = clusterData.list.find(
(item) =>
item.provider === ProviderValueMap.Docker &&
item.state === ClusterStatusValueMap.Ready
);
if (!currentData) {
currentData = clusterData.list[0];
}
if (currentData) {
handleAddWorker(currentData as ClusterListItem);
const targetCluster = checkDefaultCluster(clusterData.list);
if (targetCluster) {
handleAddWorker(targetCluster as ClusterListItem);
} else {
message.info(intl.formatMessage({ id: 'noresult.resources.cluster' }));
}
Expand Down
Loading