|
|
@@ -187,37 +187,7 @@ func Notebook2Create(ctx *context.Context, form auth.CreateModelArtsNotebookForm |
|
|
|
description := form.Description |
|
|
|
flavor := form.Flavor |
|
|
|
imageId := form.ImageId |
|
|
|
|
|
|
|
//判断项目内任务名称是否重复 |
|
|
|
// var jobTypes []string |
|
|
|
// jobTypes = append(jobTypes, string(models.JobTypeTrain)) |
|
|
|
// tasks, _, err := models.Cloudbrains(&models.CloudbrainsOptions{ |
|
|
|
// ListOptions: models.ListOptions{ |
|
|
|
// PageSize: setting.UI.IssuePagingNum, |
|
|
|
// }, |
|
|
|
// RepoID: repo.ID, |
|
|
|
// Type: models.TypeCloudBrainTwo, |
|
|
|
// JobTypeNot: false, |
|
|
|
// JobTypes: jobTypes, |
|
|
|
// IsLatestVersion: modelarts.IsLatestVersion, |
|
|
|
// }) |
|
|
|
// if err == nil { |
|
|
|
// for _, task := range tasks { |
|
|
|
// if strings.EqualFold(task.JobName, displayJobName) { |
|
|
|
// log.Error("the job name did already exist", ctx.Data["MsgID"]) |
|
|
|
// trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
// ctx.RenderWithErr("任务名称已经被使用!", tplModelArtsTrainJobNew, &form) |
|
|
|
// return |
|
|
|
// } |
|
|
|
// } |
|
|
|
// } else { |
|
|
|
// if !models.IsErrJobNotExist(err) { |
|
|
|
// log.Error("system error, %v", err, ctx.Data["MsgID"]) |
|
|
|
// trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
// ctx.RenderWithErr("system error", tplModelArtsTrainJobNew, &form) |
|
|
|
// return |
|
|
|
// } |
|
|
|
// } |
|
|
|
repo := ctx.Repo.Repository |
|
|
|
|
|
|
|
count, err := models.GetCloudbrainNotebookCountByUserID(ctx.User.ID) |
|
|
|
if err != nil { |
|
|
@@ -233,12 +203,17 @@ func Notebook2Create(ctx *context.Context, form auth.CreateModelArtsNotebookForm |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
_, err = models.GetCloudbrainByName(jobName) |
|
|
|
|
|
|
|
tasks, err := models.GetCloudbrainsByRepoIDAndJobType(repo.ID, string(models.JobTypeDebug)) |
|
|
|
if err == nil { |
|
|
|
log.Error("the job name did already exist", ctx.Data["MsgID"]) |
|
|
|
notebookNewDataPrepare(ctx) |
|
|
|
ctx.RenderWithErr("the job name did already exist", tplModelArtsNotebookNew, &form) |
|
|
|
return |
|
|
|
for _, task := range tasks { |
|
|
|
if strings.EqualFold(task.DisplayJobName, displayJobName) { |
|
|
|
log.Error("the job name did already exist", ctx.Data["MsgID"]) |
|
|
|
notebookNewDataPrepare(ctx) |
|
|
|
ctx.RenderWithErr("the job name did already exist", tplModelArtsNotebookNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if !models.IsErrJobNotExist(err) { |
|
|
|
log.Error("system error, %v", err, ctx.Data["MsgID"]) |
|
|
@@ -902,20 +877,35 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
VersionCount := modelarts.VersionCount |
|
|
|
EngineName := form.EngineName |
|
|
|
|
|
|
|
count, err := models.GetCloudbrainTrainJobCountByUserID(ctx.User.ID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainTrainJobCountByUserID failed:%v", err, ctx.Data["MsgID"]) |
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("system error", tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} else { |
|
|
|
if count >= 1 { |
|
|
|
log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) |
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("you have already a running or waiting task, can not create more", tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if err := paramCheckCreateTrainJob(form); err != nil { |
|
|
|
log.Error("paramCheckCreateTrainJob failed:(%v)", err) |
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
//判断项目内任务名称是否重复 |
|
|
|
tasks, err := models.GetCloudbrainsByRepoIDAndDisplayName(repo.ID, string(models.JobTypeTrain), displayJobName) |
|
|
|
//Determine whether the task name of the task in the project is duplicated |
|
|
|
tasks, err := models.GetCloudbrainsByRepoIDAndJobType(repo.ID, string(models.JobTypeTrain)) |
|
|
|
if err == nil { |
|
|
|
for _, task := range tasks { |
|
|
|
if strings.EqualFold(task.DisplayJobName, displayJobName) { |
|
|
|
log.Error("the job name did already exist", ctx.Data["MsgID"]) |
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("任务名称已经被使用!", tplModelArtsTrainJobNew, &form) |
|
|
|
ctx.RenderWithErr("the job name did already exist", tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
@@ -928,52 +918,6 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// //判断项目内任务名称是否重复 |
|
|
|
// var jobTypes []string |
|
|
|
// jobTypes = append(jobTypes, string(models.JobTypeTrain)) |
|
|
|
// tasks, _, err := models.Cloudbrains(&models.CloudbrainsOptions{ |
|
|
|
// ListOptions: models.ListOptions{ |
|
|
|
// PageSize: setting.UI.IssuePagingNum, |
|
|
|
// }, |
|
|
|
// RepoID: repo.ID, |
|
|
|
// Type: models.TypeCloudBrainTwo, |
|
|
|
// JobTypeNot: false, |
|
|
|
// JobTypes: jobTypes, |
|
|
|
// IsLatestVersion: modelarts.IsLatestVersion, |
|
|
|
// }) |
|
|
|
// if err == nil { |
|
|
|
// for _, task := range tasks { |
|
|
|
// if strings.EqualFold(task.JobName, displayJobName) { |
|
|
|
// log.Error("the job name did already exist", ctx.Data["MsgID"]) |
|
|
|
// trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
// ctx.RenderWithErr("任务名称已经被使用!", tplModelArtsTrainJobNew, &form) |
|
|
|
// return |
|
|
|
// } |
|
|
|
// } |
|
|
|
// } else { |
|
|
|
// if !models.IsErrJobNotExist(err) { |
|
|
|
// log.Error("system error, %v", err, ctx.Data["MsgID"]) |
|
|
|
// trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
// ctx.RenderWithErr("system error", tplModelArtsTrainJobNew, &form) |
|
|
|
// return |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
count, err := models.GetCloudbrainTrainJobCountByUserID(ctx.User.ID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainTrainJobCountByUserID failed:%v", err, ctx.Data["MsgID"]) |
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("system error", tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} else { |
|
|
|
if count >= 1 { |
|
|
|
log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) |
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("you have already a running or waiting task, can not create more", tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//todo: del the codeLocalPath |
|
|
|
_, err = ioutil.ReadDir(codeLocalPath) |
|
|
|
if err == nil { |
|
|
@@ -986,9 +930,9 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
if err := git.Clone(repo.RepoPath(), codeLocalPath, git.CloneRepoOptions{ |
|
|
|
Branch: branch_name, |
|
|
|
}); err != nil { |
|
|
|
log.Error("创建任务失败,服务器超时!: %s (%v)", repo.FullName(), err) |
|
|
|
log.Error("Create task failed, server timed out: %s (%v)", repo.FullName(), err) |
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("创建任务失败,服务器超时!", tplModelArtsTrainJobNew, &form) |
|
|
|
ctx.RenderWithErr("Create task failed, server timed out", tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
@@ -1172,7 +1116,6 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
EngineName := form.EngineName |
|
|
|
isLatestVersion := modelarts.IsLatestVersion |
|
|
|
|
|
|
|
//判断权限 |
|
|
|
canNewJob, _ := canUserCreateTrainJobVersion(ctx, latestTask.UserID) |
|
|
|
if !canNewJob { |
|
|
|
ctx.RenderWithErr("user cann't new trainjob", tplModelArtsTrainJobVersionNew, &form) |
|
|
@@ -1772,6 +1715,21 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference |
|
|
|
|
|
|
|
ckptUrl := form.TrainUrl + form.CkptName |
|
|
|
|
|
|
|
count, err := models.GetCloudbrainInferenceJobCountByUserID(ctx.User.ID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainInferenceJobCountByUserID failed:%v", err, ctx.Data["MsgID"]) |
|
|
|
inferenceJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("system error", tplModelArtsInferenceJobNew, &form) |
|
|
|
return |
|
|
|
} else { |
|
|
|
if count >= 1 { |
|
|
|
log.Error("the user already has running or waiting inference task", ctx.Data["MsgID"]) |
|
|
|
inferenceJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("you have already a running or waiting inference task, can not create more", tplModelArtsInferenceJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if err := paramCheckCreateInferenceJob(form); err != nil { |
|
|
|
log.Error("paramCheckCreateInferenceJob failed:(%v)", err) |
|
|
|
inferenceJobErrorNewDataPrepare(ctx, form) |
|
|
@@ -1779,25 +1737,14 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
//判断项目内任务名称是否重复 |
|
|
|
var jobTypes []string |
|
|
|
jobTypes = append(jobTypes, string(models.JobTypeTrain)) |
|
|
|
tasks, _, err := models.Cloudbrains(&models.CloudbrainsOptions{ |
|
|
|
ListOptions: models.ListOptions{ |
|
|
|
PageSize: setting.UI.IssuePagingNum, |
|
|
|
}, |
|
|
|
RepoID: repo.ID, |
|
|
|
Type: models.TypeCloudBrainTwo, |
|
|
|
JobTypeNot: false, |
|
|
|
JobTypes: jobTypes, |
|
|
|
IsLatestVersion: modelarts.IsLatestVersion, |
|
|
|
}) |
|
|
|
//Determine whether the task name of the task in the project is duplicated |
|
|
|
tasks, err := models.GetCloudbrainsByRepoIDAndJobType(repo.ID, string(models.JobTypeInference)) |
|
|
|
if err == nil { |
|
|
|
for _, task := range tasks { |
|
|
|
if strings.EqualFold(task.JobName, displayJobName) { |
|
|
|
if strings.EqualFold(task.DisplayJobName, displayJobName) { |
|
|
|
log.Error("the job name did already exist", ctx.Data["MsgID"]) |
|
|
|
inferenceJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("任务名称已经被使用!", tplModelArtsInferenceJobNew, &form) |
|
|
|
ctx.RenderWithErr("the job name did already exist", tplModelArtsInferenceJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
@@ -1810,21 +1757,6 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
count, err := models.GetCloudbrainInferenceJobCountByUserID(ctx.User.ID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainInferenceJobCountByUserID failed:%v", err, ctx.Data["MsgID"]) |
|
|
|
inferenceJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("system error", tplModelArtsInferenceJobNew, &form) |
|
|
|
return |
|
|
|
} else { |
|
|
|
if count >= 1 { |
|
|
|
log.Error("the user already has running or waiting inference task", ctx.Data["MsgID"]) |
|
|
|
inferenceJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("you have already a running or waiting inference task, can not create more", tplModelArtsInferenceJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//todo: del the codeLocalPath |
|
|
|
_, err = ioutil.ReadDir(codeLocalPath) |
|
|
|
if err == nil { |
|
|
@@ -1837,9 +1769,9 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference |
|
|
|
if err := git.Clone(repo.RepoPath(), codeLocalPath, git.CloneRepoOptions{ |
|
|
|
Branch: branch_name, |
|
|
|
}); err != nil { |
|
|
|
log.Error("创建任务失败,服务器超时!: %s (%v)", repo.FullName(), err) |
|
|
|
log.Error("Create task failed, server timed out: %s (%v)", repo.FullName(), err) |
|
|
|
inferenceJobErrorNewDataPrepare(ctx, form) |
|
|
|
ctx.RenderWithErr("创建任务失败,服务器超时!", tplModelArtsInferenceJobNew, &form) |
|
|
|
ctx.RenderWithErr("Create task failed, server timed out", tplModelArtsInferenceJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
@@ -1909,7 +1841,7 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference |
|
|
|
LogUrl: logObsPath, |
|
|
|
PoolID: poolID, |
|
|
|
Uuid: uuid, |
|
|
|
Parameters: param, //modelarts训练时用到 |
|
|
|
Parameters: param, //modelarts train parameters |
|
|
|
CommitID: commitID, |
|
|
|
BranchName: branch_name, |
|
|
|
Params: form.Params, |
|
|
@@ -1925,13 +1857,6 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference |
|
|
|
ResultUrl: resultObsPath, |
|
|
|
} |
|
|
|
|
|
|
|
//将params转换Parameters.Parameter,出错时返回给前端 |
|
|
|
// var Parameters modelarts.Parameters |
|
|
|
// if err := json.Unmarshal([]byte(params), &Parameters); err != nil { |
|
|
|
// ctx.ServerError("json.Unmarshal failed:", err) |
|
|
|
// return |
|
|
|
// } |
|
|
|
|
|
|
|
err = modelarts.GenerateInferenceJob(ctx, req) |
|
|
|
if err != nil { |
|
|
|
log.Error("GenerateTrainJob failed:%v", err.Error()) |
|
|
|