Browse Source

show log file

tags/v1.21.12.1
lewis 4 years ago
parent
commit
45d9693b79
4 changed files with 36 additions and 19 deletions
  1. +4
    -0
      models/cloudbrain.go
  2. +5
    -5
      modules/modelarts/resty.go
  3. +25
    -8
      routers/repo/modelarts.go
  4. +2
    -6
      templates/repo/modelarts/trainjob/show.tmpl

+ 4
- 0
models/cloudbrain.go View File

@@ -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()


+ 5
- 5
modules/modelarts/resty.go View File

@@ -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


+ 25
- 8
routers/repo/modelarts.go View File

@@ -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) {


+ 2
- 6
templates/repo/modelarts/trainjob/show.tmpl View File

@@ -116,12 +116,8 @@
<div class="ui top attached segment" style="background: #f0f0f0;">
<form class="ui form" action="{{.Link}}" method="post">
<div class="inline field">
<label>{{$.i18n.Tr "repo.modelarts.log"}}</label>
<select class="ui search dropdown" id="trainjob_datasets" style='width:385px' name="attachment">
{{range .attachments}}
<option name="attachment" value="{{.UUID}}">{{.Attachment.Name}}</option>
{{end}}
</select>
<label>{{$.i18n.Tr "repo.modelarts.log"}}:</label>
<text>{{.log_file_name}}</text>
</div>
</form>
</div>


Loading…
Cancel
Save