|
|
|
@@ -810,18 +810,11 @@ func TrainJobNewVersion(ctx *context.Context) { |
|
|
|
|
|
|
|
func trainJobNewVersionDataPrepare(ctx *context.Context) error { |
|
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
var versionName = ctx.Query("version_name") |
|
|
|
|
|
|
|
// canNewJob, err := canUserCreateTrainJobVersion(ctx, jobID, versionName) |
|
|
|
// if err != nil { |
|
|
|
// ctx.ServerError("canNewJob can info failed", err) |
|
|
|
// return err |
|
|
|
// } |
|
|
|
var id = ctx.Params(":id") |
|
|
|
|
|
|
|
task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) |
|
|
|
task, err := models.GetCloudbrainByID(id) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobIDAndVersionName(%s) failed:%v", jobID, err.Error()) |
|
|
|
log.Error("GetCloudbrainByID(%s) failed:%v", id, err.Error()) |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|
@@ -901,13 +894,10 @@ func trainJobNewVersionDataPrepare(ctx *context.Context) error { |
|
|
|
|
|
|
|
func versionErrorDataPrepare(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) error { |
|
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
// var versionName = ctx.Params(":version-name") |
|
|
|
var versionName = ctx.Query("version_name") |
|
|
|
|
|
|
|
task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) |
|
|
|
var id = ctx.Params(":id") |
|
|
|
task, err := models.GetCloudbrainByID(id) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobIDAndVersionName(%s) failed:%v", jobID, err.Error()) |
|
|
|
log.Error("GetCloudbrainByID(%s) failed:%v", id, err.Error()) |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|
@@ -1716,60 +1706,6 @@ func TrainJobShow(ctx *context.Context) { |
|
|
|
ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) |
|
|
|
} |
|
|
|
|
|
|
|
func TrainJobGetLog(ctx *context.Context) { |
|
|
|
ctx.Data["PageIsTrainJob"] = true |
|
|
|
|
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
var logFileName = ctx.Query("file_name") |
|
|
|
var baseLine = ctx.Query("base_line") |
|
|
|
var order = ctx.Query("order") |
|
|
|
|
|
|
|
if order != modelarts.OrderDesc && order != modelarts.OrderAsc { |
|
|
|
log.Error("order(%s) check failed", order) |
|
|
|
ctx.HTML(http.StatusBadRequest, tplModelArtsTrainJobShow) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
task, err := models.GetCloudbrainByJobID(jobID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobID(%s) failed:%v", jobID, err.Error()) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
result, err := modelarts.GetTrainJobLog(jobID, strconv.FormatInt(task.VersionID, 10), baseLine, logFileName, order, modelarts.Lines) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetTrainJobLog(%s) failed:%v", jobID, err.Error()) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
ctx.Data["log"] = result |
|
|
|
//ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) |
|
|
|
} |
|
|
|
|
|
|
|
func trainJobGetLog(jobID string) (*models.GetTrainJobLogFileNamesResult, *models.GetTrainJobLogResult, error) { |
|
|
|
task, err := models.GetCloudbrainByJobID(jobID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobID(%s) failed:%v", jobID, err.Error()) |
|
|
|
return nil, nil, err |
|
|
|
} |
|
|
|
|
|
|
|
resultLogFile, err := modelarts.GetTrainJobLogFileNames(jobID, strconv.FormatInt(task.VersionID, 10)) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetTrainJobLogFileNames(%s) failed:%v", jobID, err.Error()) |
|
|
|
return nil, nil, err |
|
|
|
} |
|
|
|
|
|
|
|
result, err := modelarts.GetTrainJobLog(jobID, strconv.FormatInt(task.VersionID, 10), "", resultLogFile.LogFileList[0], modelarts.OrderDesc, modelarts.Lines) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetTrainJobLog(%s) failed:%v", jobID, err.Error()) |
|
|
|
return nil, nil, err |
|
|
|
} |
|
|
|
|
|
|
|
return resultLogFile, result, err |
|
|
|
} |
|
|
|
|
|
|
|
func TrainJobDel(ctx *context.Context) { |
|
|
|
var jobID = ctx.Cloudbrain.JobID |
|
|
|
var listType = ctx.Query("listType") |
|
|
|
@@ -1835,15 +1771,6 @@ func TrainJobStop(ctx *context.Context) { |
|
|
|
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job?listType=" + listType) |
|
|
|
} |
|
|
|
|
|
|
|
func canUserCreateTrainJob(uid int64) (bool, error) { |
|
|
|
org, err := models.GetOrgByName(setting.AllowedOrg) |
|
|
|
if err != nil { |
|
|
|
log.Error("get allowed org failed: ", setting.AllowedOrg) |
|
|
|
return false, err |
|
|
|
} |
|
|
|
|
|
|
|
return org.IsOrgMember(uid) |
|
|
|
} |
|
|
|
func canUserCreateTrainJobVersion(ctx *context.Context, userID int64) (bool, error) { |
|
|
|
if ctx == nil || ctx.User == nil { |
|
|
|
log.Error("user unlogin!") |
|
|
|
@@ -2310,17 +2237,16 @@ func inferenceJobErrorNewDataPrepare(ctx *context.Context, form auth.CreateModel |
|
|
|
} |
|
|
|
func InferenceJobShow(ctx *context.Context) { |
|
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
|
|
|
|
page := ctx.QueryInt("page") |
|
|
|
if page <= 0 { |
|
|
|
page = 1 |
|
|
|
} |
|
|
|
task, err := models.GetCloudbrainByJobID(jobID) |
|
|
|
|
|
|
|
var id = ctx.Params(":id") |
|
|
|
task, err := models.GetCloudbrainByID(id) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetInferenceTask(%s) failed:%v", jobID, err.Error()) |
|
|
|
ctx.RenderWithErr(err.Error(), tplModelArtsInferenceJobShow, nil) |
|
|
|
log.Error("GetCloudbrainByID(%s) failed:%v", id, err.Error()) |
|
|
|
ctx.ServerError("GetCloudbrainByID failed", err) |
|
|
|
return |
|
|
|
} |
|
|
|
//设置权限 |
|
|
|
@@ -2353,11 +2279,12 @@ func InferenceJobShow(ctx *context.Context) { |
|
|
|
|
|
|
|
LabelName := strings.Fields(task.LabelName) |
|
|
|
ctx.Data["labelName"] = LabelName |
|
|
|
ctx.Data["jobID"] = jobID |
|
|
|
ctx.Data["jobID"] = task.JobID |
|
|
|
ctx.Data["jobName"] = task.JobName |
|
|
|
ctx.Data["displayJobName"] = task.DisplayJobName |
|
|
|
ctx.Data["task"] = task |
|
|
|
ctx.Data["canDownload"] = cloudbrain.CanModifyJob(ctx, task) |
|
|
|
ctx.Data["id"] = id |
|
|
|
|
|
|
|
tempUids := []int64{} |
|
|
|
tempUids = append(tempUids, task.UserID) |
|
|
|
@@ -2444,19 +2371,8 @@ func DeleteJobStorage(jobName string) error { |
|
|
|
} |
|
|
|
|
|
|
|
func DownloadMultiResultFile(ctx *context.Context) { |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
var versionName = ctx.Query("version_name") |
|
|
|
task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error()) |
|
|
|
return |
|
|
|
} |
|
|
|
// if !isCanDeleteOrDownload(ctx, task) { |
|
|
|
// ctx.ServerError("no right.", errors.New(ctx.Tr("repo.model_noright"))) |
|
|
|
// return |
|
|
|
// } |
|
|
|
|
|
|
|
// path := Model_prefix + models.AttachmentRelativePath(id) + "/" |
|
|
|
task := ctx.Cloudbrain |
|
|
|
path := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, "result/", versionName), "/") + "/" |
|
|
|
|
|
|
|
allFile, err := storage.GetAllObjectByBucketAndPrefix(setting.Bucket, path) |
|
|
|
|