diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go index a64c317a8..cd81b32bc 100755 --- a/modules/modelarts/modelarts.go +++ b/modules/modelarts/modelarts.go @@ -49,6 +49,9 @@ const ( IsLatestVersion = "1" NotLatestVersion = "0" ComputeResource = "NPU" + NPUResource = "NPU" + GPUResource = "CPU/GPU" + DebugType = -1 VersionCount = 1 SortByCreateTime = "create_time" @@ -273,7 +276,7 @@ func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) (err error DatasetName: attach.Name, CommitID: req.CommitID, IsLatestVersion: req.IsLatestVersion, - ComputeResource: ComputeResource, + ComputeResource: NPUResource, EngineID: req.EngineID, TrainUrl: req.TrainUrl, BranchName: req.BranchName, @@ -356,7 +359,7 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobReq, job CommitID: req.CommitID, IsLatestVersion: req.IsLatestVersion, PreVersionName: req.PreVersionName, - ComputeResource: ComputeResource, + ComputeResource: NPUResource, EngineID: req.EngineID, TrainUrl: req.TrainUrl, BranchName: req.BranchName, diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index 81b753674..0bd15d921 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -26,6 +26,8 @@ import ( ) const ( + tplDebugJobIndex base.TplName = "repo/debugjob/index" + tplModelArtsNotebookIndex base.TplName = "repo/modelarts/notebook/index" tplModelArtsNotebookNew base.TplName = "repo/modelarts/notebook/new" tplModelArtsNotebookShow base.TplName = "repo/modelarts/notebook/show" @@ -36,6 +38,60 @@ const ( tplModelArtsTrainJobVersionNew base.TplName = "repo/modelarts/trainjob/version_new" ) +func DebugJobIndex(ctx *context.Context) { + MustEnableCloudbrain(ctx) + repo := ctx.Repo.Repository + page := ctx.QueryInt("page") + if page <= 0 { + page = 1 + } + + ciTasks, count, err := models.Cloudbrains(&models.CloudbrainsOptions{ + ListOptions: models.ListOptions{ + Page: page, + PageSize: setting.UI.IssuePagingNum, + }, + RepoID: repo.ID, + Type: modelarts.DebugType, + JobType: string(models.JobTypeDebug), + }) + if err != nil { + ctx.ServerError("Get debugjob faild:", err) + return + } + + timestamp := time.Now().Unix() + + for i, task := range ciTasks { + if task.Cloudbrain.Type == models.TypeCloudBrainOne { + if task.Status == string(models.JobRunning) && (timestamp-int64(task.Cloudbrain.CreatedUnix) > 10) { + ciTasks[i].CanDebug = true + } else { + ciTasks[i].CanDebug = false + } + ciTasks[i].CanDel = models.CanDelJob(ctx.IsSigned, ctx.User, task) + ciTasks[i].Cloudbrain.ComputeResource = modelarts.GPUResource + } + if task.Cloudbrain.Type == models.TypeCloudBrainTwo { + if task.Status == string(models.JobRunning) { + ciTasks[i].CanDebug = true + } else { + ciTasks[i].CanDebug = false + } + ciTasks[i].Cloudbrain.ComputeResource = modelarts.NPUResource + } + + } + + pager := context.NewPagination(int(count), setting.UI.IssuePagingNum, page, 5) + pager.SetDefaultParams(ctx) + ctx.Data["Page"] = pager + + ctx.Data["PageIsCloudBrain"] = true + ctx.Data["Tasks"] = ciTasks + ctx.HTML(200, tplDebugJobIndex) +} + // MustEnableDataset check if repository enable internal cb func MustEnableModelArts(ctx *context.Context) { if !ctx.Repo.CanRead(models.UnitTypeCloudBrain) { diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 3bacb7549..9aae774b6 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -969,6 +969,10 @@ func RegisterRoutes(m *macaron.Macaron) { m.Post("/create", reqRepoCloudBrainWriter, bindIgnErr(auth.CreateCloudBrainForm{}), repo.CloudBrainCreate) }, context.RepoRef()) + m.Group("/debugjob", func() { + m.Get("", reqRepoCloudBrainReader, repo.DebugJobIndex) + }, context.RepoRef()) + m.Group("/modelarts", func() { m.Group("/notebook", func() { m.Get("", reqRepoCloudBrainReader, repo.NotebookIndex)