|
|
@@ -620,12 +620,17 @@ func TrainJobNewVersion(ctx *context.Context) { |
|
|
|
func trainJobNewVersionDataPrepare(ctx *context.Context) error { |
|
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
var versionName = ctx.Query("versionName") |
|
|
|
jobID = "19373" |
|
|
|
var versionName = ctx.Query("version_name") |
|
|
|
|
|
|
|
task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobIDAndVersionName(%s) failed:%v", jobID, err.Error()) |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|
t := time.Now() |
|
|
|
var jobName = cutString(ctx.User.Name, 5) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:] |
|
|
|
ctx.Data["job_name"] = jobName |
|
|
|
ctx.Data["job_name"] = task.JobName |
|
|
|
|
|
|
|
attachs, err := models.GetModelArtsUserAttachments(ctx.User.ID) |
|
|
|
if err != nil { |
|
|
@@ -670,10 +675,14 @@ func trainJobNewVersionDataPrepare(ctx *context.Context) error { |
|
|
|
ctx.ServerError("GetBranches error:", err) |
|
|
|
return err |
|
|
|
} |
|
|
|
ctx.Data["Branches"] = Branches |
|
|
|
ctx.Data["BranchesCount"] = len(Branches) |
|
|
|
ctx.Data["jobID"] = jobID |
|
|
|
ctx.Data["versionName"] = versionName |
|
|
|
ctx.Data["branches"] = Branches |
|
|
|
ctx.Data["branch_name"] = task.BranchName |
|
|
|
ctx.Data["description"] = task.Description |
|
|
|
ctx.Data["boot_file"] = task.BootFile |
|
|
|
ctx.Data["dataset_name"] = task.DatasetName |
|
|
|
ctx.Data["params"] = task.Parameters |
|
|
|
ctx.Data["work_server_number"] = task.WorkServerNumber |
|
|
|
ctx.Data["flavor_name"] = task.FlavorName |
|
|
|
|
|
|
|
configList, err := getConfigList(modelarts.PerPage, 1, modelarts.SortByCreateTime, "desc", "", modelarts.ConfigTypeCustom) |
|
|
|
if err != nil { |
|
|
@@ -705,6 +714,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
dataPath := "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/" |
|
|
|
branch_name := form.BranchName |
|
|
|
isLatestVersion := modelarts.IsLatestVersion |
|
|
|
FlavorName := form.FlavorName |
|
|
|
|
|
|
|
if err := paramCheckCreateTrainJob(form); err != nil { |
|
|
|
log.Error("paramCheckCreateTrainJob failed:(%v)", err) |
|
|
@@ -833,24 +843,28 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
} |
|
|
|
|
|
|
|
req := &modelarts.GenerateTrainJobReq{ |
|
|
|
JobName: jobName, |
|
|
|
DataUrl: dataPath, |
|
|
|
Description: description, |
|
|
|
CodeObsPath: codeObsPath, |
|
|
|
BootFile: codeObsPath + bootFile, |
|
|
|
TrainUrl: outputObsPath, |
|
|
|
FlavorCode: flavorCode, |
|
|
|
WorkServerNumber: workServerNumber, |
|
|
|
EngineID: int64(engineID), |
|
|
|
LogUrl: logObsPath, |
|
|
|
PoolID: poolID, |
|
|
|
Uuid: uuid, |
|
|
|
Parameters: parameters.Parameter, |
|
|
|
CommitID: commitID, |
|
|
|
IsLatestVersion: isLatestVersion, |
|
|
|
} |
|
|
|
|
|
|
|
jobResult, err := modelarts.GenerateTrainJob(ctx, req) |
|
|
|
JobName: jobName, |
|
|
|
DataUrl: dataPath, |
|
|
|
Description: description, |
|
|
|
CodeObsPath: codeObsPath, |
|
|
|
BootFile: codeObsPath + bootFile, |
|
|
|
TrainUrl: outputObsPath, |
|
|
|
FlavorCode: flavorCode, |
|
|
|
WorkServerNumber: workServerNumber, |
|
|
|
EngineID: int64(engineID), |
|
|
|
LogUrl: logObsPath, |
|
|
|
PoolID: poolID, |
|
|
|
Uuid: uuid, |
|
|
|
Parameters: parameters.Parameter, |
|
|
|
CommitID: commitID, |
|
|
|
IsLatestVersion: isLatestVersion, |
|
|
|
BranchName: branch_name, |
|
|
|
Params: form.Params, |
|
|
|
FatherVersionName: modelarts.InitFatherVersionName, |
|
|
|
FlavorName: FlavorName, |
|
|
|
} |
|
|
|
|
|
|
|
err = modelarts.GenerateTrainJob(ctx, req) |
|
|
|
if err != nil { |
|
|
|
log.Error("GenerateTrainJob failed:%v", err.Error()) |
|
|
|
trainJobNewDataPrepare(ctx) |
|
|
@@ -862,34 +876,34 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
// 保存openi创建训练任务界面的参数 |
|
|
|
err = models.CreateTrainjobConfigDetail(&models.TrainjobConfigDetail{ |
|
|
|
|
|
|
|
JobName: req.JobName, |
|
|
|
JobID: strconv.FormatInt(jobResult.JobID, 10), |
|
|
|
VersionName: jobResult.VersionName, |
|
|
|
ResourcePools: form.PoolID, |
|
|
|
EngineVersions: form.EngineID, |
|
|
|
FlavorInfos: form.Flavor, |
|
|
|
TrainUrl: outputObsPath, |
|
|
|
BootFile: form.BootFile, |
|
|
|
Uuid: form.Attachment, |
|
|
|
DatasetName: attach.Name, |
|
|
|
Params: form.Params, |
|
|
|
BranchName: branch_name, |
|
|
|
}) |
|
|
|
// // 保存openi创建训练任务界面的参数 |
|
|
|
// err = models.CreateTrainjobConfigDetail(&models.TrainjobConfigDetail{ |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
log.Error("CreateTrainjobConfigDetail failed:%v", err.Error()) |
|
|
|
trainJobNewVersionDataPrepare(ctx) |
|
|
|
ctx.Data["bootFile"] = form.BootFile |
|
|
|
ctx.Data["uuid"] = form.Attachment |
|
|
|
ctx.Data["datasetName"] = attach.Name |
|
|
|
ctx.Data["params"] = form.Params |
|
|
|
ctx.Data["branch_name"] = branch_name |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
// JobName: req.JobName, |
|
|
|
// JobID: strconv.FormatInt(jobResult.JobID, 10), |
|
|
|
// VersionName: jobResult.VersionName, |
|
|
|
// ResourcePools: form.PoolID, |
|
|
|
// EngineVersions: form.EngineID, |
|
|
|
// FlavorInfos: form.Flavor, |
|
|
|
// TrainUrl: outputObsPath, |
|
|
|
// BootFile: form.BootFile, |
|
|
|
// Uuid: form.Attachment, |
|
|
|
// DatasetName: attach.Name, |
|
|
|
// Params: form.Params, |
|
|
|
// BranchName: branch_name, |
|
|
|
// }) |
|
|
|
|
|
|
|
// if err != nil { |
|
|
|
// log.Error("CreateTrainjobConfigDetail failed:%v", err.Error()) |
|
|
|
// trainJobNewVersionDataPrepare(ctx) |
|
|
|
// ctx.Data["bootFile"] = form.BootFile |
|
|
|
// ctx.Data["uuid"] = form.Attachment |
|
|
|
// ctx.Data["datasetName"] = attach.Name |
|
|
|
// ctx.Data["params"] = form.Params |
|
|
|
// ctx.Data["branch_name"] = branch_name |
|
|
|
// ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
|
// return |
|
|
|
// } |
|
|
|
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job") |
|
|
|
} |
|
|
|
|
|
|
@@ -918,6 +932,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
dataPath := "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/" |
|
|
|
branch_name := form.BranchName |
|
|
|
fatherVersionName := form.VersionName |
|
|
|
FlavorName := form.FlavorName |
|
|
|
|
|
|
|
if err := paramCheckCreateTrainJob(form); err != nil { |
|
|
|
log.Error("paramCheckCreateTrainJob failed:(%v)", err) |
|
|
@@ -1063,11 +1078,13 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
LogUrl: logObsPath, |
|
|
|
PoolID: poolID, |
|
|
|
Uuid: uuid, |
|
|
|
Parameters: parameters.Parameter, |
|
|
|
Params: form.Params, |
|
|
|
PreVersionId: task.VersionID, |
|
|
|
CommitID: commitID, |
|
|
|
BranchName: branch_name, |
|
|
|
FlavorName: FlavorName, |
|
|
|
} |
|
|
|
jobResult, err := modelarts.GenerateTrainJobVersion(ctx, req, jobID, fatherVersionName) |
|
|
|
err = modelarts.GenerateTrainJobVersion(ctx, req, jobID, fatherVersionName) |
|
|
|
if err != nil { |
|
|
|
log.Error("GenerateTrainJob failed:%v", err.Error()) |
|
|
|
trainJobNewVersionDataPrepare(ctx) |
|
|
@@ -1079,33 +1096,33 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
return |
|
|
|
} |
|
|
|
// 保存openi创建训练任务界面的参数 |
|
|
|
err = models.CreateTrainjobConfigDetail(&models.TrainjobConfigDetail{ |
|
|
|
|
|
|
|
JobName: req.JobName, |
|
|
|
JobID: strconv.FormatInt(jobResult.JobID, 10), |
|
|
|
VersionName: jobResult.VersionName, |
|
|
|
ResourcePools: form.PoolID, |
|
|
|
EngineVersions: form.EngineID, |
|
|
|
FlavorInfos: form.Flavor, |
|
|
|
TrainUrl: outputObsPath, |
|
|
|
BootFile: form.BootFile, |
|
|
|
Uuid: form.Attachment, |
|
|
|
DatasetName: attach.Name, |
|
|
|
Params: form.Params, |
|
|
|
BranchName: branch_name, |
|
|
|
}) |
|
|
|
// err = models.CreateTrainjobConfigDetail(&models.TrainjobConfigDetail{ |
|
|
|
|
|
|
|
// JobName: req.JobName, |
|
|
|
// JobID: strconv.FormatInt(jobResult.JobID, 10), |
|
|
|
// VersionName: jobResult.VersionName, |
|
|
|
// ResourcePools: form.PoolID, |
|
|
|
// EngineVersions: form.EngineID, |
|
|
|
// FlavorInfos: form.Flavor, |
|
|
|
// TrainUrl: outputObsPath, |
|
|
|
// BootFile: form.BootFile, |
|
|
|
// Uuid: form.Attachment, |
|
|
|
// DatasetName: attach.Name, |
|
|
|
// Params: form.Params, |
|
|
|
// BranchName: branch_name, |
|
|
|
// }) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
log.Error("CreateTrainjobConfigDetail failed:%v", err.Error()) |
|
|
|
trainJobNewVersionDataPrepare(ctx) |
|
|
|
ctx.Data["bootFile"] = form.BootFile |
|
|
|
ctx.Data["uuid"] = form.Attachment |
|
|
|
ctx.Data["datasetName"] = attach.Name |
|
|
|
ctx.Data["params"] = form.Params |
|
|
|
ctx.Data["branch_name"] = branch_name |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
// if err != nil { |
|
|
|
// log.Error("CreateTrainjobConfigDetail failed:%v", err.Error()) |
|
|
|
// trainJobNewVersionDataPrepare(ctx) |
|
|
|
// ctx.Data["bootFile"] = form.BootFile |
|
|
|
// ctx.Data["uuid"] = form.Attachment |
|
|
|
// ctx.Data["datasetName"] = attach.Name |
|
|
|
// ctx.Data["params"] = form.Params |
|
|
|
// ctx.Data["branch_name"] = branch_name |
|
|
|
// ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
|
// return |
|
|
|
// } |
|
|
|
// ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job") |
|
|
|
ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) |
|
|
|
} |
|
|
@@ -1387,18 +1404,18 @@ func TrainJobStop(ctx *context.Context) { |
|
|
|
|
|
|
|
func TrainJobVersionDel(ctx *context.Context) { |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
var versionName = ctx.Params(":versionName") |
|
|
|
var versionName = ctx.Query(":versionName") |
|
|
|
task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error()) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobIndex, nil) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
_, err = modelarts.DelTrainJob(jobID) |
|
|
|
if err != nil { |
|
|
|
log.Error("DelTrainJob(%s) failed:%v", task.JobName, err.Error()) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobIndex, nil) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
@@ -1408,12 +1425,13 @@ func TrainJobVersionDel(ctx *context.Context) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job") |
|
|
|
// ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job") |
|
|
|
ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) |
|
|
|
} |
|
|
|
|
|
|
|
func TrainJobVersionStop(ctx *context.Context) { |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
var versionName = ctx.Params(":versionName") |
|
|
|
var versionName = ctx.Query(":versionName") |
|
|
|
task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error()) |
|
|
@@ -1428,7 +1446,8 @@ func TrainJobVersionStop(ctx *context.Context) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job") |
|
|
|
// ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job") |
|
|
|
ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) |
|
|
|
} |
|
|
|
|
|
|
|
func canUserCreateTrainJob(uid int64) (bool, error) { |
|
|
|