|
@@ -4,7 +4,6 @@ import ( |
|
|
"encoding/json" |
|
|
"encoding/json" |
|
|
"errors" |
|
|
"errors" |
|
|
"io" |
|
|
"io" |
|
|
"io/ioutil" |
|
|
|
|
|
"net/http" |
|
|
"net/http" |
|
|
"os" |
|
|
"os" |
|
|
"path" |
|
|
"path" |
|
@@ -382,7 +381,7 @@ func trainJobNewDataPrepare(ctx *context.Context) error { |
|
|
return nil |
|
|
return nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func ErrorNewDataPrepare(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) error { |
|
|
|
|
|
|
|
|
func trainJobErrorNewDataPrepare(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) error { |
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
|
|
|
|
|
|
//can, err := canUserCreateTrainJob(ctx.User.ID) |
|
|
//can, err := canUserCreateTrainJob(ctx.User.ID) |
|
@@ -570,7 +569,7 @@ func trainJobNewVersionDataPrepare(ctx *context.Context) error { |
|
|
return nil |
|
|
return nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func VersionErrorDataPrepare(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) error { |
|
|
|
|
|
|
|
|
func versionErrorDataPrepare(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) error { |
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
var jobID = ctx.Params(":jobid") |
|
|
var jobID = ctx.Params(":jobid") |
|
|
// var versionName = ctx.Params(":version-name") |
|
|
// var versionName = ctx.Params(":version-name") |
|
@@ -686,22 +685,23 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
|
|
|
|
|
if err := paramCheckCreateTrainJob(form); err != nil { |
|
|
if err := paramCheckCreateTrainJob(form); err != nil { |
|
|
log.Error("paramCheckCreateTrainJob failed:(%v)", err) |
|
|
log.Error("paramCheckCreateTrainJob failed:(%v)", err) |
|
|
ErrorNewDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
attach, err := models.GetAttachmentByUUID(uuid) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
log.Error("GetAttachmentByUUID(%s) failed:%v", uuid, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// attach, err := models.GetAttachmentByUUID(uuid) |
|
|
|
|
|
// if err != nil { |
|
|
|
|
|
// log.Error("GetAttachmentByUUID(%s) failed:%v", uuid, err.Error()) |
|
|
|
|
|
// return |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
//todo: del the codeLocalPath |
|
|
//todo: del the codeLocalPath |
|
|
_, err = ioutil.ReadDir(codeLocalPath) |
|
|
|
|
|
if err == nil { |
|
|
|
|
|
os.RemoveAll(codeLocalPath) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// _, err := ioutil.ReadDir(codeLocalPath) |
|
|
|
|
|
// if err == nil { |
|
|
|
|
|
// os.RemoveAll(codeLocalPath) |
|
|
|
|
|
// } |
|
|
|
|
|
os.RemoveAll(codeLocalPath) |
|
|
|
|
|
|
|
|
gitRepo, _ := git.OpenRepository(repo.RepoPath()) |
|
|
gitRepo, _ := git.OpenRepository(repo.RepoPath()) |
|
|
commitID, _ := gitRepo.GetBranchCommitID(branch_name) |
|
|
commitID, _ := gitRepo.GetBranchCommitID(branch_name) |
|
@@ -710,7 +710,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
Branch: branch_name, |
|
|
Branch: branch_name, |
|
|
}); err != nil { |
|
|
}); err != nil { |
|
|
log.Error("创建任务失败,服务器超时!: %s (%v)", repo.FullName(), err) |
|
|
log.Error("创建任务失败,服务器超时!: %s (%v)", repo.FullName(), err) |
|
|
trainJobNewDataPrepare(ctx) |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("创建任务失败,服务器超时!", tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr("创建任务失败,服务器超时!", tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -718,14 +718,14 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
//todo: upload code (send to file_server todo this work?) |
|
|
//todo: upload code (send to file_server todo this work?) |
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil { |
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil { |
|
|
log.Error("Failed to obsMkdir_output: %s (%v)", repo.FullName(), err) |
|
|
log.Error("Failed to obsMkdir_output: %s (%v)", repo.FullName(), err) |
|
|
trainJobNewDataPrepare(ctx) |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_output", tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_output", tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil { |
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil { |
|
|
log.Error("Failed to obsMkdir_log: %s (%v)", repo.FullName(), err) |
|
|
log.Error("Failed to obsMkdir_log: %s (%v)", repo.FullName(), err) |
|
|
trainJobNewDataPrepare(ctx) |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_log", tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_log", tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -734,7 +734,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
if err := uploadCodeToObs(codeLocalPath, jobName, ""); err != nil { |
|
|
if err := uploadCodeToObs(codeLocalPath, jobName, ""); err != nil { |
|
|
// if err := uploadCodeToObs(codeLocalPath, jobName, parentDir); err != nil { |
|
|
// if err := uploadCodeToObs(codeLocalPath, jobName, parentDir); err != nil { |
|
|
log.Error("Failed to uploadCodeToObs: %s (%v)", repo.FullName(), err) |
|
|
log.Error("Failed to uploadCodeToObs: %s (%v)", repo.FullName(), err) |
|
|
trainJobNewDataPrepare(ctx) |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("Failed to uploadCodeToObs", tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr("Failed to uploadCodeToObs", tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -754,7 +754,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
err := json.Unmarshal([]byte(params), ¶meters) |
|
|
err := json.Unmarshal([]byte(params), ¶meters) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
log.Error("Failed to Unmarshal params: %s (%v)", params, err) |
|
|
log.Error("Failed to Unmarshal params: %s (%v)", params, err) |
|
|
trainJobNewDataPrepare(ctx) |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("运行参数错误", tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr("运行参数错误", tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -797,7 +797,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
|
|
|
|
|
if err != nil { |
|
|
if err != nil { |
|
|
log.Error("Failed to CreateTrainJobConfig: %v", err) |
|
|
log.Error("Failed to CreateTrainJobConfig: %v", err) |
|
|
trainJobNewDataPrepare(ctx) |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("保存作业参数失败:"+err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr("保存作业参数失败:"+err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -835,15 +835,10 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
err = modelarts.GenerateTrainJob(ctx, req) |
|
|
|
|
|
|
|
|
err := modelarts.GenerateTrainJob(ctx, req) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
log.Error("GenerateTrainJob failed:%v", err.Error()) |
|
|
log.Error("GenerateTrainJob failed:%v", err.Error()) |
|
|
trainJobNewDataPrepare(ctx) |
|
|
|
|
|
ctx.Data["bootFile"] = form.BootFile |
|
|
|
|
|
ctx.Data["uuid"] = form.Attachment |
|
|
|
|
|
ctx.Data["datasetName"] = attach.Name |
|
|
|
|
|
ctx.Data["params"] = Parameters.Parameter |
|
|
|
|
|
ctx.Data["branch_name"] = branch_name |
|
|
|
|
|
|
|
|
trainJobErrorNewDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -892,7 +887,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
|
|
|
|
|
if err := paramCheckCreateTrainJob(form); err != nil { |
|
|
if err := paramCheckCreateTrainJob(form); err != nil { |
|
|
log.Error("paramCheckCreateTrainJob failed:(%v)", err) |
|
|
log.Error("paramCheckCreateTrainJob failed:(%v)", err) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -916,7 +911,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
Branch: branch_name, |
|
|
Branch: branch_name, |
|
|
}); err != nil { |
|
|
}); err != nil { |
|
|
log.Error("创建任务失败,任务名称已存在!: %s (%v)", repo.FullName(), err) |
|
|
log.Error("创建任务失败,任务名称已存在!: %s (%v)", repo.FullName(), err) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("创建任务失败,任务名称已存在!", tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr("创建任务失败,任务名称已存在!", tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -924,14 +919,14 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
//todo: upload code (send to file_server todo this work?) |
|
|
//todo: upload code (send to file_server todo this work?) |
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil { |
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil { |
|
|
log.Error("Failed to obsMkdir_output: %s (%v)", repo.FullName(), err) |
|
|
log.Error("Failed to obsMkdir_output: %s (%v)", repo.FullName(), err) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_output", tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_output", tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil { |
|
|
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil { |
|
|
log.Error("Failed to obsMkdir_log: %s (%v)", repo.FullName(), err) |
|
|
log.Error("Failed to obsMkdir_log: %s (%v)", repo.FullName(), err) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_log", tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr("Failed to obsMkdir_log", tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -941,7 +936,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
// if err := uploadCodeToObs(codeLocalPath, jobName, ""); err != nil { |
|
|
// if err := uploadCodeToObs(codeLocalPath, jobName, ""); err != nil { |
|
|
if err := uploadCodeToObs(codeLocalPath, jobName, parentDir); err != nil { |
|
|
if err := uploadCodeToObs(codeLocalPath, jobName, parentDir); err != nil { |
|
|
log.Error("Failed to uploadCodeToObs: %s (%v)", repo.FullName(), err) |
|
|
log.Error("Failed to uploadCodeToObs: %s (%v)", repo.FullName(), err) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("Failed to uploadCodeToObs", tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr("Failed to uploadCodeToObs", tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -961,7 +956,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
err := json.Unmarshal([]byte(params), ¶meters) |
|
|
err := json.Unmarshal([]byte(params), ¶meters) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
log.Error("Failed to Unmarshal params: %s (%v)", params, err) |
|
|
log.Error("Failed to Unmarshal params: %s (%v)", params, err) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("运行参数错误", tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr("运行参数错误", tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -980,7 +975,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
if isSaveParam == "on" { |
|
|
if isSaveParam == "on" { |
|
|
if form.ParameterTemplateName == "" { |
|
|
if form.ParameterTemplateName == "" { |
|
|
log.Error("ParameterTemplateName is empty") |
|
|
log.Error("ParameterTemplateName is empty") |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("保存作业参数时,作业参数名称不能为空", tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr("保存作业参数时,作业参数名称不能为空", tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -1004,7 +999,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
|
|
|
|
|
if err != nil { |
|
|
if err != nil { |
|
|
log.Error("Failed to CreateTrainJobConfig: %v", err) |
|
|
log.Error("Failed to CreateTrainJobConfig: %v", err) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr("保存作业参数失败:"+err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr("保存作业参数失败:"+err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
@@ -1051,7 +1046,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
err = modelarts.GenerateTrainJobVersion(ctx, req, jobID) |
|
|
err = modelarts.GenerateTrainJobVersion(ctx, req, jobID) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
log.Error("GenerateTrainJob failed:%v", err.Error()) |
|
|
log.Error("GenerateTrainJob failed:%v", err.Error()) |
|
|
VersionErrorDataPrepare(ctx, form) |
|
|
|
|
|
|
|
|
versionErrorDataPrepare(ctx, form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|