diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 84b5481d8..1b97ed36d 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -680,6 +680,10 @@ type TrainJobResult struct { IsSuccess bool `json:"is_success"` } +type LogFile struct { + Name string +} + func Cloudbrains(opts *CloudbrainsOptions) ([]*Cloudbrain, int64, error) { sess := x.NewSession() defer sess.Close() diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go index a06f5aaa2..5fbf19c5a 100755 --- a/modules/modelarts/resty.go +++ b/modules/modelarts/resty.go @@ -569,7 +569,7 @@ sendjob: Get(HOST + "/v1/" + setting.ProjectID + urlTrainJob + "/" + jobID + "/versions/" + versionID + "/log/file-names") if err != nil { - return nil, fmt.Errorf("resty GetTrainJobLog: %v", err) + return nil, fmt.Errorf("resty GetTrainJobLogFileNames: %v", err) } if res.StatusCode() == http.StatusUnauthorized && retry < 1 { @@ -584,13 +584,13 @@ sendjob: log.Error("json.Unmarshal failed(%s): %v", res.String(), err.Error()) return &result, fmt.Errorf("json.Unmarshal failed(%s): %v", res.String(), err.Error()) } - log.Error("GetTrainJobLog failed(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) - return &result, fmt.Errorf("GetTrainJobLog failed(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) + log.Error("GetTrainJobLogFileNames failed(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) + return &result, fmt.Errorf("GetTrainJobLogFileNames failed(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) } if !result.IsSuccess { - log.Error("GetTrainJobLog(%s) failed", jobID) - return &result, fmt.Errorf("获取作业日志失败:%s", result.ErrorMsg) + log.Error("GetTrainJobLogFileNames(%s) failed", jobID) + return &result, fmt.Errorf("获取作业日志文件失败:%s", result.ErrorMsg) } return &result, nil diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index e46b163bd..1a684ace1 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -576,6 +576,15 @@ func TrainJobShow(ctx *context.Context) { result.DatasetName = attach.Name } + resultLogFile, resultLog, err := trainJobGetLog(ctx, jobID) + if err != nil { + log.Error("trainJobGetLog(%s) failed:%v", jobID, err.Error()) + ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) + } + + ctx.Data["log_file_name"] = resultLogFile.LogFileList[0] + ctx.Data["log"] = resultLog + ctx.Data["task"] = task ctx.Data["jobID"] = jobID ctx.Data["result"] = result @@ -586,29 +595,37 @@ func TrainJobGetLog(ctx *context.Context) { ctx.Data["PageIsCloudBrain"] = true var jobID = ctx.Params(":jobid") + resultLogFile, result, err := trainJobGetLog(ctx, jobID) + if err != nil { + log.Error("trainJobGetLog(%s) failed:%v", jobID, err.Error()) + ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) + } + + ctx.Data["log_file_name"] = resultLogFile.LogFileList[0] + ctx.Data["log"] = result + ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) +} + +func trainJobGetLog(ctx *context.Context, jobID string) (*models.GetTrainJobLogFileNamesResult, *models.GetTrainJobLogResult, error){ task, err := models.GetCloudbrainByJobID(jobID) if err != nil { log.Error("GetCloudbrainByJobID(%s) failed:%v", jobID, err.Error()) - ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) - return + 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()) - ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) - return + return nil, nil, err } result, err := modelarts.GetTrainJobLog(jobID, strconv.FormatInt(task.VersionID, 10), "", resultLogFile.LogFileList[0], modelarts.OrderDesc, 20) if err != nil { log.Error("GetTrainJobLog(%s) failed:%v", jobID, err.Error()) - ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobShow, nil) - return + return nil, nil, err } - ctx.Data["log"] = result - ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) + return resultLogFile, result, err } func TrainJobDel(ctx *context.Context) { diff --git a/templates/repo/modelarts/trainjob/show.tmpl b/templates/repo/modelarts/trainjob/show.tmpl index 0d38d9302..5bc3386f2 100755 --- a/templates/repo/modelarts/trainjob/show.tmpl +++ b/templates/repo/modelarts/trainjob/show.tmpl @@ -116,12 +116,8 @@