in frontend/src/routes/space/new-cluster/new-cluster.tsx [80:149]
async function nextStep() {
const value = form.getFieldsValue();
const newStep = step + 1;
let isParamsValid = true;
const params = {
...requestInfo.reqInfo,
cluster_id: requestInfo.clusterId,
request_id: requestInfo.requestId,
event_type: (step + 1).toString(),
};
if (value && step === NewClusterStepsEnum['register-space']) {
params.spaceInfo = {
describe: value.describe,
name: value.name,
spaceAdminUsers: value.spaceAdminUsers,
};
isParamsValid =
checkParam(params.spaceInfo.name, '请填写空间名称') &&
checkParam(params.spaceInfo.spaceAdminUsers, '请填写管理员姓名');
}
if (value && step === NewClusterStepsEnum['add-node']) {
params.authInfo = {
sshKey: value.sshKey,
sshPort: value.sshPort ? parseInt(value.sshPort) : value.sshPort,
sshUser: value.sshUser,
};
params.hosts = value.hosts;
isParamsValid =
checkParam(params.authInfo.sshUser, '请填写SSH用户') &&
checkParam(params.authInfo.sshPort, '请填写SSH端口') &&
checkParam(params.authInfo.sshKey, '请填写SSH私钥') &&
checkParam(params.hosts, '请填写节点列表');
}
if (value && step === NewClusterStepsEnum['install-options']) {
params.installInfo = value.installDir;
params.packageInfo = value.packageUrl;
params.agentPort = value.agentPort ? parseInt(value.agentPort) : value.agentPort;
isParamsValid =
checkParam(params.installInfo, '请填写代码包路径') &&
checkParam(params.packageInfo, '请填写安装路径') &&
checkParam(params.agentPort, '请填写Agent启动端口');
}
if (value && step === NewClusterStepsEnum['cluster-plan']) {
params.nodeConfig = value.nodeConfig;
isParamsValid =
checkParam(params.nodeConfig?.[0]?.nodeIds, '请分配FE节点') &&
checkParam(params.nodeConfig?.[1]?.nodeIds, '请分配BE节点');
}
if (value && step === NewClusterStepsEnum['node-config']) {
params.deployConfigs = value.deployConfigs;
isParamsValid = params.deployConfigs.every((node: any) => {
return node.configs.every((config: any) => {
return checkParam(config.value, `请完整配置${node.moduleName.toUpperCase()}节点参数`);
});
});
}
if (!isParamsValid) return;
setLoading(true);
const res = await SpaceAPI.createCluster(params);
setLoading(false);
if (isSuccess(res)) {
setRequestInfo(res.data);
setStep(newStep);
setTimeout(() => {
navigate(`/space/new/${res.data.requestId}/${NewClusterStepsEnum[newStep]}`);
}, 0);
} else {
message.error(res.msg);
}
}