Browse Source

add status and duration

tags/v1.21.12.1
Gitea 4 years ago
parent
commit
9a7ebb5ef5
4 changed files with 56 additions and 12 deletions
  1. +18
    -0
      models/cloudbrain.go
  2. +0
    -1
      modules/modelarts/modelarts.go
  3. +29
    -2
      routers/repo/modelarts.go
  4. +9
    -9
      routers/routes/routes.go

+ 18
- 0
models/cloudbrain.go View File

@@ -59,6 +59,7 @@ type Cloudbrain struct {
ContainerIp string ContainerIp string
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
Duration int `xorm:"INDEX duration"`
DeletedAt time.Time `xorm:"deleted"` DeletedAt time.Time `xorm:"deleted"`
CanDebug bool `xorm:"-"` CanDebug bool `xorm:"-"`
CanDel bool `xorm:"-"` CanDel bool `xorm:"-"`
@@ -905,6 +906,12 @@ func SetCloudbrainStatusByJobID(jobID string, status CloudbrainStatus) (err erro
return 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 { func UpdateJob(job *Cloudbrain) error {
return updateJob(x, job) return updateJob(x, job)
} }
@@ -916,6 +923,17 @@ func updateJob(e Engine, job *Cloudbrain) error {
return err 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 { func DeleteJob(job *Cloudbrain) error {
return deleteJob(x, job) return deleteJob(x, job)
} }


+ 0
- 1
modules/modelarts/modelarts.go View File

@@ -151,7 +151,6 @@ func GenerateTask(ctx *context.Context, jobName, uuid, description string) error
log.Error("CreateJob failed: %v", err.Error()) log.Error("CreateJob failed: %v", err.Error())
return err return err
} }

err = models.CreateCloudbrain(&models.Cloudbrain{ err = models.CreateCloudbrain(&models.Cloudbrain{


Status: string(models.JobWaiting), Status: string(models.JobWaiting),


+ 29
- 2
routers/repo/modelarts.go View File

@@ -501,7 +501,34 @@ func TrainJobIndex(ctx *context.Context) {
page = 1 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{ ListOptions: models.ListOptions{
Page: page, Page: page,
PageSize: setting.UI.IssuePagingNum, PageSize: setting.UI.IssuePagingNum,
@@ -519,7 +546,7 @@ func TrainJobIndex(ctx *context.Context) {
ctx.Data["Page"] = pager ctx.Data["Page"] = pager


ctx.Data["PageIsCloudBrain"] = true ctx.Data["PageIsCloudBrain"] = true
ctx.Data["Tasks"] = tasks
ctx.Data["Tasks"] = trainTasks
ctx.HTML(200, tplModelArtsTrainJobIndex) ctx.HTML(200, tplModelArtsTrainJobIndex)
} }




+ 9
- 9
routers/routes/routes.go View File

@@ -961,15 +961,15 @@ func RegisterRoutes(m *macaron.Macaron) {
}, context.RepoRef()) }, context.RepoRef())


m.Group("/modelarts", func() { 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.Group("/notebook", func() {
m.Get("", reqRepoCloudBrainReader, repo.NotebookIndex) m.Get("", reqRepoCloudBrainReader, repo.NotebookIndex)


Loading…
Cancel
Save