|
|
|
@@ -370,17 +370,58 @@ func CloudbrainForModelConvertGetLog(ctx *context.Context) { |
|
|
|
ctx.JSON(http.StatusOK, result) |
|
|
|
} |
|
|
|
|
|
|
|
func CloudbrainDownloadLogFile(ctx *context.Context) { |
|
|
|
ID := ctx.Params(":id") |
|
|
|
job, err := models.GetCloudbrainByID(ID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobName failed: %v", err, ctx.Data["MsgID"]) |
|
|
|
ctx.ServerError(err.Error(), err) |
|
|
|
return |
|
|
|
} |
|
|
|
prefix := "/" + setting.CBCodePathPrefix + job.JobName + "/model" |
|
|
|
files, err := storage.GetOneLevelAllObjectUnderDirMinio(setting.Attachment.Minio.Bucket, prefix, "") |
|
|
|
if err != nil { |
|
|
|
log.Error("query cloudbrain model failed: %v", err) |
|
|
|
return |
|
|
|
} |
|
|
|
fileName := "" |
|
|
|
for _, file := range files { |
|
|
|
if strings.HasSuffix(file.FileName, "log.txt") { |
|
|
|
fileName = file.FileName |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
if fileName != "" { |
|
|
|
url, err := storage.Attachments.PresignedGetURL(prefix+"/"+fileName, fileName) |
|
|
|
if err != nil { |
|
|
|
log.Error("Get minio get SignedUrl failed: %v", err.Error(), ctx.Data["msgID"]) |
|
|
|
ctx.ServerError("Get minio get SignedUrl failed", err) |
|
|
|
return |
|
|
|
} |
|
|
|
http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func CloudbrainGetLog(ctx *context.Context) { |
|
|
|
ID := ctx.Params(":id") |
|
|
|
startLine := ctx.QueryInt("base_line") |
|
|
|
lines := ctx.QueryInt("lines") |
|
|
|
endLine := startLine + lines |
|
|
|
order := ctx.Query("order") |
|
|
|
if order == "desc" { |
|
|
|
endLine = startLine |
|
|
|
startLine = endLine - lines |
|
|
|
if startLine < 0 { |
|
|
|
startLine = 0 |
|
|
|
} |
|
|
|
} |
|
|
|
job, err := models.GetCloudbrainByID(ID) |
|
|
|
if err != nil { |
|
|
|
log.Error("GetCloudbrainByJobName failed: %v", err, ctx.Data["MsgID"]) |
|
|
|
ctx.ServerError(err.Error(), err) |
|
|
|
return |
|
|
|
} |
|
|
|
result := GetLogFromModelDir(job.JobName, startLine, startLine+lines) |
|
|
|
result := getLogFromModelDir(job.JobName, startLine, endLine) |
|
|
|
if result == nil { |
|
|
|
log.Error("GetJobLog failed: %v", err, ctx.Data["MsgID"]) |
|
|
|
ctx.ServerError(err.Error(), err) |
|
|
|
@@ -401,7 +442,7 @@ func CloudbrainGetLog(ctx *context.Context) { |
|
|
|
ctx.JSON(http.StatusOK, re) |
|
|
|
} |
|
|
|
|
|
|
|
func GetLogFromModelDir(jobName string, startLine int, endLine int) map[string]interface{} { |
|
|
|
func getLogFromModelDir(jobName string, startLine int, endLine int) map[string]interface{} { |
|
|
|
prefix := "/" + setting.CBCodePathPrefix + jobName + "/model" |
|
|
|
files, err := storage.GetOneLevelAllObjectUnderDirMinio(setting.Attachment.Minio.Bucket, prefix, "") |
|
|
|
if err != nil { |
|
|
|
|