From bdaea5e57a47645d9894e9f5dc18c2f36b82fe69 Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Thu, 25 Nov 2021 10:09:56 +0800 Subject: [PATCH 1/6] fix issue --- templates/repo/modelarts/trainjob/show.tmpl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/repo/modelarts/trainjob/show.tmpl b/templates/repo/modelarts/trainjob/show.tmpl index 6a36ad287..700f7d66f 100755 --- a/templates/repo/modelarts/trainjob/show.tmpl +++ b/templates/repo/modelarts/trainjob/show.tmpl @@ -657,7 +657,7 @@ td, th { } } - function downloadModelFile(version_name,parentDir,filename){ + function downloadModelFile(version_name,filename){ $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/model_download?version_name=${version_name}&file_name=${filename}`, (data) => { console.log(data) @@ -680,10 +680,10 @@ td, th { html += "" html += "" if(data.Dirs[i].IsDir){ - html += `` + html += `` html += "" + data.Dirs[i].FileName + "" }else{ - html += `` + html += `` html += "" + data.Dirs[i].FileName + "" } html += '' From 534d067893c3041ba2081b8bce7cf81d58eb9a90 Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Thu, 25 Nov 2021 11:04:54 +0800 Subject: [PATCH 2/6] fix issue --- templates/repo/modelarts/trainjob/show.tmpl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/templates/repo/modelarts/trainjob/show.tmpl b/templates/repo/modelarts/trainjob/show.tmpl index 700f7d66f..fbb05bb68 100755 --- a/templates/repo/modelarts/trainjob/show.tmpl +++ b/templates/repo/modelarts/trainjob/show.tmpl @@ -557,6 +557,7 @@ td, th { // detail status and duration $('#'+version_name+'-duration').text(data.JobDuration) $('#'+version_name+'-status').text(data.JobStatus) + loadLog(version_name) }).fail(function(err) { @@ -600,7 +601,7 @@ td, th { }); } function loadLog(version_name){ - $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&lines=20&order=asc`, (data) => { + $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&lines=50&order=asc`, (data) => { $('input[name=end_line]').val(data.EndLine) $('input[name=start_line]').val(data.StartLine) $(`#log_file${version_name}`).text(data.Content) @@ -683,7 +684,7 @@ td, th { html += `` html += "" + data.Dirs[i].FileName + "" }else{ - html += `` + html += `` html += "" + data.Dirs[i].FileName + "" } html += '' @@ -714,9 +715,9 @@ td, th { let divHeight = $(`#log${version_name}`).height(); // 可视区高度 // let version_name=$(this).find('input[name=version_name]').val() console.log("scrollTo,scrollHeight,divHeight",scrollTop,scrollHeight,divHeight) - if(parseInt(scrollTop) + divHeight + 18 == scrollHeight){ + if(parseInt(scrollTop) + divHeight -10 == scrollHeight){ let end_line = $(`#log${version_name} input[name=end_line]`).val() - $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${end_line}&order=desc`, (data) => { + $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${end_line}&lines=50&order=desc`, (data) => { if (data.Lines == 0){ $(`.message${version_name} #header`).text('您已翻阅至日志底部') $(`.message${version_name}`).css('display', 'block') @@ -733,7 +734,7 @@ td, th { } if(scrollTop == 0){ let start_line = $(`#log${version_name} input[name=start_line]`).val() - $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${start_line}&order=asc`, (data) => { + $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${start_line}&lines=50&order=asc`, (data) => { if (data.Lines == 0){ $(`.message${version_name} #header`).text('您已翻阅至日志顶部') $(`.message${version_name}`).css('display', 'block') From bf3e1fa3b3b8bcb1745f4edc58d670582bd10eb4 Mon Sep 17 00:00:00 2001 From: liuzx Date: Thu, 25 Nov 2021 11:06:26 +0800 Subject: [PATCH 3/6] fix bug --- routers/api/v1/repo/modelarts.go | 2 +- routers/repo/modelarts.go | 87 +++++++++++++++++++++++++++----- routers/routes/routes.go | 1 + 3 files changed, 76 insertions(+), 14 deletions(-) diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index 80ff57a56..1e6b17ad8 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -343,7 +343,7 @@ func ModelDownload(ctx *context.Context) { path := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName, parentDir, fileName), "/") log.Info("Download path is:%s", path) - if setting.PROXYURL != "" { + if setting.PROXYURL == "" { body, err := storage.ObsDownloadAFile(setting.Bucket, path) if err != nil { log.Info("download error.") diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index a3602e0e7..5e5b0a3e0 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -480,9 +480,9 @@ func trainJobNewVersionDataPrepare(ctx *context.Context) error { var jobID = ctx.Params(":jobid") // var versionName = ctx.Params(":version-name") var versionName = ctx.Query("version_name") - // canNewJob, err := canUserCreateTrainJobVersion(ctx, jobID) + // canNewJob, err := canUserCreateTrainJobVersion(ctx, jobID, versionName) // if err != nil { - // ctx.ServerError("get can info failed", err) + // ctx.ServerError("canNewJob can info failed", err) // return err // } // ctx.Data["canNewJob"] = canNewJob @@ -1312,17 +1312,19 @@ func canUserCreateTrainJob(uid int64) (bool, error) { return org.IsOrgMember(uid) } -func canUserCreateTrainJobVersion(ctx *context.Context, jobID string) (bool, error) { - - var versionName = "V0001" - task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) - if err != nil { - return false, err - } - if ctx.User.ID == task.User.ID { - return true, nil - } - return false, err +func canUserCreateTrainJobVersion(ctx *context.Context, jobID string, versionName string) (bool, error) { + // task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) + // if err != nil { + // return false, err + // } + // if ctx.User.ID == task.UserID { + // canNewJob := true + // return canNewJob, nil + // } else { + // canNewJob := false + // return canNewJob, nil + // } + return true, nil } func TrainJobGetConfigList(ctx *context.Context) { @@ -1378,3 +1380,62 @@ func getConfigList(perPage, page int, sortBy, order, searchContent, configType s return list, nil } + +func ModelDownload(ctx *context.Context) { + var ( + err error + ) + + var jobID = ctx.Params(":jobid") + versionName := ctx.Query("version_name") + // versionName := "V0001" + parentDir := ctx.Query("parent_dir") + fileName := ctx.Query("file_name") + log.Info("DownloadSingleModelFile start.") + // id := ctx.Params(":ID") + // path := Model_prefix + models.AttachmentRelativePath(id) + "/" + parentDir + fileName + task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) + if err != nil { + log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error()) + return + } + + path := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName, parentDir, fileName), "/") + log.Info("Download path is:%s", path) + if setting.PROXYURL == "" { + body, err := storage.ObsDownloadAFile(setting.Bucket, path) + if err != nil { + log.Info("download error.") + } else { + //count++ + // models.ModifyModelDownloadCount(id) + defer body.Close() + ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+fileName) + ctx.Resp.Header().Set("Content-Type", "application/octet-stream") + p := make([]byte, 1024) + var readErr error + var readCount int + // 读取对象内容 + for { + readCount, readErr = body.Read(p) + if readCount > 0 { + ctx.Resp.Write(p[:readCount]) + //fmt.Printf("%s", p[:readCount]) + } + if readErr != nil { + break + } + } + } + } else { + url, err := storage.GetObsCreateSignedUrlByBucketAndKey(setting.Bucket, path) + if err != nil { + log.Error("GetObsCreateSignedUrl failed: %v", err.Error(), ctx.Data["msgID"]) + ctx.ServerError("GetObsCreateSignedUrl", err) + return + } + //count++ + // models.ModifyModelDownloadCount(id) + http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently) + } +} diff --git a/routers/routes/routes.go b/routers/routes/routes.go index d3212690c..3bacb7549 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -988,6 +988,7 @@ func RegisterRoutes(m *macaron.Macaron) { m.Get("", reqRepoCloudBrainReader, repo.TrainJobShow) m.Post("/stop", reqRepoCloudBrainWriter, repo.TrainJobStop) m.Post("/del", reqRepoCloudBrainWriter, repo.TrainJobDel) + m.Get("/model_download", reqRepoCloudBrainReader, repo.ModelDownload) m.Get("/create_version", reqRepoCloudBrainReader, repo.TrainJobNewVersion) m.Post("/create_version", reqRepoCloudBrainWriter, bindIgnErr(auth.CreateModelArtsTrainJobForm{}), repo.TrainJobCreateVersion) }) From eb0ffcdbec4a469e1433ac50bd630a971dbf694a Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Thu, 25 Nov 2021 11:23:03 +0800 Subject: [PATCH 4/6] fix issue --- templates/repo/modelarts/trainjob/show.tmpl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/templates/repo/modelarts/trainjob/show.tmpl b/templates/repo/modelarts/trainjob/show.tmpl index fbb05bb68..7d32d1b9c 100755 --- a/templates/repo/modelarts/trainjob/show.tmpl +++ b/templates/repo/modelarts/trainjob/show.tmpl @@ -725,8 +725,14 @@ td, th { $(`.message${version_name}`).css('display', 'none') }, 1000) }else{ - $(`#log${version_name} input[name=end_line]`).val(data.EndLine) - $(`#log${version_name}`).append('
' + data.Content) 
+                    if(end_line===data.EndLine){
+                        return
+                    }
+                    else{
+                        $(`#log${version_name} input[name=end_line]`).val(data.EndLine)
+                        $(`#log${version_name}`).append('
' + data.Content) 
+                    }
+                    
                 }
             }).fail(function(err) {
                 console.log(err);

From d5328e1a83260a34662c8e03a0ecdce3509bf668 Mon Sep 17 00:00:00 2001
From: liuzx 
Date: Thu, 25 Nov 2021 11:29:46 +0800
Subject: [PATCH 5/6] fix bug

---
 routers/repo/modelarts.go | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go
index 5e5b0a3e0..3236afdcd 100755
--- a/routers/repo/modelarts.go
+++ b/routers/repo/modelarts.go
@@ -478,7 +478,6 @@ func TrainJobNewVersion(ctx *context.Context) {
 func trainJobNewVersionDataPrepare(ctx *context.Context) error {
 	ctx.Data["PageIsCloudBrain"] = true
 	var jobID = ctx.Params(":jobid")
-	// var versionName = ctx.Params(":version-name")
 	var versionName = ctx.Query("version_name")
 	// canNewJob, err := canUserCreateTrainJobVersion(ctx, jobID, versionName)
 	// if err != nil {
@@ -548,7 +547,7 @@ func trainJobNewVersionDataPrepare(ctx *context.Context) error {
 		return err
 	}
 
-	ctx.Data["branch"] = Branches
+	ctx.Data["branches"] = Branches
 	ctx.Data["branch_name"] = task.BranchName
 	ctx.Data["description"] = task.Description
 	ctx.Data["boot_file"] = task.BootFile

From 923ffffdf0bd19cc943d652cb8a95a5c86a64494 Mon Sep 17 00:00:00 2001
From: liuzx 
Date: Thu, 25 Nov 2021 11:39:44 +0800
Subject: [PATCH 6/6] fix bug

---
 routers/repo/modelarts.go | 45 ++++++---------------------------------
 1 file changed, 7 insertions(+), 38 deletions(-)

diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go
index 3236afdcd..a820c56fa 100755
--- a/routers/repo/modelarts.go
+++ b/routers/repo/modelarts.go
@@ -1387,12 +1387,9 @@ func ModelDownload(ctx *context.Context) {
 
 	var jobID = ctx.Params(":jobid")
 	versionName := ctx.Query("version_name")
-	// versionName := "V0001"
 	parentDir := ctx.Query("parent_dir")
 	fileName := ctx.Query("file_name")
 	log.Info("DownloadSingleModelFile start.")
-	// id := ctx.Params(":ID")
-	// path := Model_prefix + models.AttachmentRelativePath(id) + "/" + parentDir + fileName
 	task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName)
 	if err != nil {
 		log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error())
@@ -1401,40 +1398,12 @@ func ModelDownload(ctx *context.Context) {
 
 	path := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName, parentDir, fileName), "/")
 	log.Info("Download path is:%s", path)
-	if setting.PROXYURL == "" {
-		body, err := storage.ObsDownloadAFile(setting.Bucket, path)
-		if err != nil {
-			log.Info("download error.")
-		} else {
-			//count++
-			// models.ModifyModelDownloadCount(id)
-			defer body.Close()
-			ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+fileName)
-			ctx.Resp.Header().Set("Content-Type", "application/octet-stream")
-			p := make([]byte, 1024)
-			var readErr error
-			var readCount int
-			// 读取对象内容
-			for {
-				readCount, readErr = body.Read(p)
-				if readCount > 0 {
-					ctx.Resp.Write(p[:readCount])
-					//fmt.Printf("%s", p[:readCount])
-				}
-				if readErr != nil {
-					break
-				}
-			}
-		}
-	} else {
-		url, err := storage.GetObsCreateSignedUrlByBucketAndKey(setting.Bucket, path)
-		if err != nil {
-			log.Error("GetObsCreateSignedUrl failed: %v", err.Error(), ctx.Data["msgID"])
-			ctx.ServerError("GetObsCreateSignedUrl", err)
-			return
-		}
-		//count++
-		// models.ModifyModelDownloadCount(id)
-		http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently)
+
+	url, err := storage.GetObsCreateSignedUrlByBucketAndKey(setting.Bucket, path)
+	if err != nil {
+		log.Error("GetObsCreateSignedUrl failed: %v", err.Error(), ctx.Data["msgID"])
+		ctx.ServerError("GetObsCreateSignedUrl", err)
+		return
 	}
+	http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently)
 }