From 1dd0a3f515ee281e89ae12c69d7775133f4ba340 Mon Sep 17 00:00:00 2001 From: liuzx Date: Tue, 23 Nov 2021 11:40:41 +0800 Subject: [PATCH] update --- models/cloudbrain.go | 13 ++----------- modules/modelarts/modelarts.go | 2 +- modules/storage/obs.go | 21 --------------------- routers/api/v1/repo/modelarts.go | 17 +++++++++-------- routers/repo/modelarts.go | 22 ++++++++++++---------- 5 files changed, 24 insertions(+), 51 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 8e9e1d920..44b669181 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -69,7 +69,7 @@ type Cloudbrain struct { Type int VersionID int64 //版本id - VersionName string //当前版本 + VersionName string `xorm:"INDEX"` //当前版本 Uuid string //数据集id DatasetName string VersionCount int //任务的当前版本数量,不包括删除的 @@ -1029,7 +1029,7 @@ func SetTrainJobStatusByJobID(jobID string, status string, duration int64, train return } -func SetVersionCountAndLatestVersionByJobIDAndVersionName(jobID string, versionName string, versionCount int, isLatestVersion string, totalVersionCount int) (err error) { +func SetVersionCountAndLatestVersion(jobID string, versionName string, versionCount int, isLatestVersion string, totalVersionCount int) (err error) { cb := &Cloudbrain{JobID: jobID, VersionName: versionName, VersionCount: versionCount, IsLatestVersion: isLatestVersion, TotalVersionCount: totalVersionCount} _, err = x.Cols("version_Count", "is_latest_version", "total_version_count").Where("cloudbrain.job_id=? AND cloudbrain.version_name=?", jobID, versionName).Update(cb) return @@ -1066,15 +1066,6 @@ func deleteJob(e Engine, job *Cloudbrain) error { return err } -func DeleteJobVersion(job *Cloudbrain) error { - return deleteJobVersion(x, job) -} - -func deleteJobVersion(e Engine, job *Cloudbrain) error { - _, err := e.ID(job.ID).Delete(job) - return err -} - func GetCloudbrainByName(jobName string) (*Cloudbrain, error) { cb := &Cloudbrain{JobName: jobName} return getRepoCloudBrain(cb) diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go index e1cf42cde..a64c317a8 100755 --- a/modules/modelarts/modelarts.go +++ b/modules/modelarts/modelarts.go @@ -379,7 +379,7 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobReq, job } //将训练任务的上一版本的isLatestVersion设置为"0" - err = models.SetVersionCountAndLatestVersionByJobIDAndVersionName(strconv.FormatInt(jobResult.JobID, 10), VersionTaskList[0].VersionName, VersionCount, NotLatestVersion, TotalVersionCount) + err = models.SetVersionCountAndLatestVersion(strconv.FormatInt(jobResult.JobID, 10), VersionTaskList[0].VersionName, VersionCount, NotLatestVersion, TotalVersionCount) if err != nil { ctx.ServerError("Update IsLatestVersion failed", err) return err diff --git a/modules/storage/obs.go b/modules/storage/obs.go index b91f85024..39312bfde 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -279,27 +279,6 @@ func GetObsCreateSignedUrl(jobName, parentDir, fileName string) (string, error) return output.SignedUrl, nil } -func GetObsCreateVersionSignedUrl(jobName, parentDir, fileName string, VersionOutputPath string) (string, error) { - input := &obs.CreateSignedUrlInput{} - input.Bucket = setting.Bucket - input.Key = strings.TrimPrefix(path.Join(setting.TrainJobModelPath, jobName, setting.OutPutPath, VersionOutputPath, parentDir, fileName), "/") - - input.Expires = 60 * 60 - input.Method = obs.HttpMethodGet - - reqParams := make(map[string]string) - fileName = url.QueryEscape(fileName) - reqParams["response-content-disposition"] = "attachment; filename=\"" + fileName + "\"" - input.QueryParams = reqParams - output, err := ObsCli.CreateSignedUrl(input) - if err != nil { - log.Error("CreateSignedUrl failed:", err.Error()) - return "", err - } - - return output.SignedUrl, nil -} - func ObsGetPreSignedUrl(uuid, fileName string) (string, error) { input := &obs.CreateSignedUrlInput{} input.Method = obs.HttpMethodGet diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index 3d5b7e214..c53e62efa 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -212,17 +212,18 @@ func DelTrainJobVersion(ctx *context.APIContext) { return } - //删除数据库记录 - err = models.DeleteJobVersion(task) + //删除modelarts上的记录 + _, err = modelarts.DelTrainJobVersion(jobID, strconv.FormatInt(task.VersionID, 10)) if err != nil { - ctx.ServerError("DeleteJobVersion failed", err) + log.Error("DelTrainJobVersion(%s) failed:%v", task.JobName, err.Error()) ctx.NotFound(err) return } - //删除modelarts上的记录 - _, err = modelarts.DelTrainJobVersion(jobID, strconv.FormatInt(task.VersionID, 10)) + + //删除数据库记录 + err = models.DeleteJob(task) if err != nil { - log.Error("DelTrainJobVersion(%s) failed:%v", task.JobName, err.Error()) + ctx.ServerError("DeleteJob failed", err) ctx.NotFound(err) return } @@ -242,13 +243,13 @@ func DelTrainJobVersion(ctx *context.APIContext) { // 判断当前删掉的任务是否是最新版本,若是,将排序后的TotalVersionCount置为删掉的最新版本的TotalVersionCount,若不是,按时间排序后的版本列表的第一个版本设置为最新版本,TotalVersionCount不变 if task.IsLatestVersion == modelarts.IsLatestVersion { - err = models.SetVersionCountAndLatestVersionByJobIDAndVersionName(jobID, VersionTaskList[0].Cloudbrain.VersionName, VersionListCount, modelarts.IsLatestVersion, task.TotalVersionCount) + err = models.SetVersionCountAndLatestVersion(jobID, VersionTaskList[0].Cloudbrain.VersionName, VersionListCount, modelarts.IsLatestVersion, task.TotalVersionCount) if err != nil { ctx.ServerError("UpdateJobVersionCount failed", err) return } } else { - err = models.SetVersionCountAndLatestVersionByJobIDAndVersionName(jobID, VersionTaskList[0].VersionName, VersionListCount, modelarts.IsLatestVersion, VersionTaskList[0].Cloudbrain.TotalVersionCount) + err = models.SetVersionCountAndLatestVersion(jobID, VersionTaskList[0].VersionName, VersionListCount, modelarts.IsLatestVersion, VersionTaskList[0].Cloudbrain.TotalVersionCount) if err != nil { ctx.ServerError("UpdateJobVersionCount failed", err) return diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index c08c557b7..a996524d2 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -527,7 +527,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) if err := git.Clone(repo.RepoPath(), codeLocalPath, git.CloneRepoOptions{ Branch: branch_name, }); err != nil { - log.Error("创建任务失败,任务名称已存在!: %s (%v)", repo.FullName(), err) + log.Error("创建任务失败,服务器超时!: %s (%v)", repo.FullName(), err) trainJobNewDataPrepare(ctx) ctx.Data["bootFile"] = form.BootFile @@ -536,7 +536,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) ctx.Data["params"] = form.Params ctx.Data["branch_name"] = branch_name trainJobNewDataPrepare(ctx) - ctx.RenderWithErr("创建任务失败,任务名称已存在!", tplModelArtsTrainJobNew, &form) + ctx.RenderWithErr("创建任务失败,服务器超时!", tplModelArtsTrainJobNew, &form) return } @@ -1086,14 +1086,7 @@ func TrainJobDel(ctx *context.Context) { ctx.ServerError("get VersionListTasks failed", err) return } - //删除数据库Cloudbrain表的记录 - for _, task := range VersionListTasks { - err = models.DeleteJobVersion(&task.Cloudbrain) - if err != nil { - ctx.ServerError("DeleteJobVersion failed", err) - return - } - } + //删除modelarts上的任务记录 _, err = modelarts.DelTrainJob(jobID) if err != nil { @@ -1102,6 +1095,15 @@ func TrainJobDel(ctx *context.Context) { return } + //删除数据库Cloudbrain表的记录 + for _, task := range VersionListTasks { + err = models.DeleteJob(&task.Cloudbrain) + if err != nil { + ctx.ServerError("DeleteJob failed", err) + return + } + } + ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job") }