From 9a7ebb5ef5438bbeb4bcbbc5a88463e5cef912cc Mon Sep 17 00:00:00 2001 From: Gitea Date: Tue, 26 Oct 2021 19:49:40 +0800 Subject: [PATCH] add status and duration --- models/cloudbrain.go | 18 ++++++++++++++++++ modules/modelarts/modelarts.go | 1 - routers/repo/modelarts.go | 31 +++++++++++++++++++++++++++++-- routers/routes/routes.go | 18 +++++++++--------- 4 files changed, 56 insertions(+), 12 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index edc9c6775..22665b797 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -59,6 +59,7 @@ type Cloudbrain struct { ContainerIp string CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` + Duration int `xorm:"INDEX duration"` DeletedAt time.Time `xorm:"deleted"` CanDebug bool `xorm:"-"` CanDel bool `xorm:"-"` @@ -905,6 +906,12 @@ func SetCloudbrainStatusByJobID(jobID string, status CloudbrainStatus) (err erro return } +func SetTrainJobStatusByJobID(jobID string, status string, duration int) (err error) { + cb := &Cloudbrain{JobID: jobID, Status: string(status), Duration: duration} + _, err = x.Cols("status", "duration").Where("cloudbrain.job_id=?", jobID).Update(cb) + return +} + func UpdateJob(job *Cloudbrain) error { return updateJob(x, job) } @@ -916,6 +923,17 @@ func updateJob(e Engine, job *Cloudbrain) error { return err } +// func UpdateTrainJob(job *CloudbrainInfo) error { +// return updateTrainJob(x, job) +// } + +// func updateTrainJob(e Engine, job *CloudbrainInfo) error { +// var sess *xorm.Session +// sess = e.Where("job_id = ?", job.Cloudbrain.JobID) +// _, err := sess.Cols("status", "container_id", "container_ip").Update(job) +// return err +// } + func DeleteJob(job *Cloudbrain) error { return deleteJob(x, job) } diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go index 215a70ce7..a0d068b56 100755 --- a/modules/modelarts/modelarts.go +++ b/modules/modelarts/modelarts.go @@ -151,7 +151,6 @@ func GenerateTask(ctx *context.Context, jobName, uuid, description string) error log.Error("CreateJob failed: %v", err.Error()) return err } - err = models.CreateCloudbrain(&models.Cloudbrain{ Status: string(models.JobWaiting), diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index 1eef9362f..a15f5e0cb 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -501,7 +501,34 @@ func TrainJobIndex(ctx *context.Context) { page = 1 } - tasks, count, err := models.Cloudbrains(&models.CloudbrainsOptions{ + tasks, _, err := models.Cloudbrains(&models.CloudbrainsOptions{ + ListOptions: models.ListOptions{ + Page: page, + PageSize: setting.UI.IssuePagingNum, + }, + RepoID: repo.ID, + Type: models.TypeCloudBrainTrainJob, + }) + if err != nil { + ctx.ServerError("Cloudbrain", err) + return + } + + for i := range tasks { + TrainJobDetail, err := modelarts.GetTrainJob(tasks[i].Cloudbrain.JobID, strconv.FormatInt(tasks[i].Cloudbrain.VersionID, 10)) + if err != nil { + log.Error("GetJob(%s) failed:%v", tasks[i].Cloudbrain.JobID, err.Error()) + return + } + err = models.SetTrainJobStatusByJobID(tasks[i].Cloudbrain.JobID, modelarts.TransTrainJobStatus(TrainJobDetail.IntStatus), int(TrainJobDetail.Duration)) + // err = models.UpdateJob(tasks[i].Cloudbrain) + if err != nil { + ctx.ServerError("UpdateJob failed", err) + return + } + } + + trainTasks, count, err := models.Cloudbrains(&models.CloudbrainsOptions{ ListOptions: models.ListOptions{ Page: page, PageSize: setting.UI.IssuePagingNum, @@ -519,7 +546,7 @@ func TrainJobIndex(ctx *context.Context) { ctx.Data["Page"] = pager ctx.Data["PageIsCloudBrain"] = true - ctx.Data["Tasks"] = tasks + ctx.Data["Tasks"] = trainTasks ctx.HTML(200, tplModelArtsTrainJobIndex) } diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 71c112477..0a3bf633a 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -961,15 +961,15 @@ func RegisterRoutes(m *macaron.Macaron) { }, context.RepoRef()) m.Group("/modelarts", func() { - m.Get("", reqRepoCloudBrainReader, repo.ModelArtsIndex) - m.Group("/:jobid", func() { - m.Get("", reqRepoCloudBrainReader, repo.ModelArtsShow) - m.Get("/debug", reqRepoCloudBrainReader, repo.ModelArtsDebug) - m.Post("/stop", reqRepoCloudBrainWriter, repo.ModelArtsStop) - m.Post("/del", reqRepoCloudBrainWriter, repo.ModelArtsDel) - }) - m.Get("/create", reqRepoCloudBrainWriter, repo.ModelArtsNew) - m.Post("/create", reqRepoCloudBrainWriter, bindIgnErr(auth.CreateModelArtsForm{}), repo.ModelArtsCreate) + // m.Get("", reqRepoCloudBrainReader, repo.ModelArtsIndex) + // m.Group("/:jobid", func() { + // m.Get("", reqRepoCloudBrainReader, repo.ModelArtsShow) + // m.Get("/debug", reqRepoCloudBrainReader, repo.ModelArtsDebug) + // m.Post("/stop", reqRepoCloudBrainWriter, repo.ModelArtsStop) + // m.Post("/del", reqRepoCloudBrainWriter, repo.ModelArtsDel) + // }) + // m.Get("/create", reqRepoCloudBrainWriter, repo.ModelArtsNew) + // m.Post("/create", reqRepoCloudBrainWriter, bindIgnErr(auth.CreateModelArtsForm{}), repo.ModelArtsCreate) m.Group("/notebook", func() { m.Get("", reqRepoCloudBrainReader, repo.NotebookIndex)