Browse Source

训练后将jobid和versionName增加到配置表

tags/v1.21.12.1
liuzx 4 years ago
parent
commit
00cd20d53c
4 changed files with 50 additions and 28 deletions
  1. +2
    -0
      models/cloudbrain.go
  2. +14
    -14
      modules/modelarts/modelarts.go
  3. +34
    -4
      routers/repo/modelarts.go
  4. +0
    -10
      routers/routes/routes.go

+ 2
- 0
models/cloudbrain.go View File

@@ -83,6 +83,7 @@ type Cloudbrain struct {

type TrainjobConfigDetail struct {
ID int64 `xorm:"pk autoincr"`
JobID string `xorm:"INDEX"`
JobName string `xorm:"INDEX"`
ResourcePools string `xorm:"INDEX"`
EngineVersions int `xorm:"INDEX"`
@@ -93,6 +94,7 @@ type TrainjobConfigDetail struct {
DatasetName string `xorm:"INDEX"`
Params string `xorm:"INDEX"`
BranchName string `xorm:"INDEX"`
VersionName string `xorm:"INDEX"`

User *User `xorm:"-"`
Repo *Repository `xorm:"-"`


+ 14
- 14
modules/modelarts/modelarts.go View File

@@ -192,7 +192,7 @@ func GenerateTask(ctx *context.Context, jobName, uuid, description string) error
return nil
}

func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) error {
func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) (jobresult *models.CreateTrainJobResult, err error) {
jobResult, err := createTrainJob(models.CreateTrainJobParams{
JobName: req.JobName,
Description: req.Description,
@@ -214,13 +214,13 @@ func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) error {
})
if err != nil {
log.Error("CreateJob failed: %v", err.Error())
return err
return nil, err
}

attach, err := models.GetAttachmentByUUID(req.Uuid)
if err != nil {
log.Error("GetAttachmentByUUID(%s) failed:%v", strconv.FormatInt(jobResult.JobID, 10), err.Error())
return nil
return nil, err
}

err = models.CreateCloudbrain(&models.Cloudbrain{
@@ -241,13 +241,13 @@ func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) error {

if err != nil {
log.Error("CreateCloudbrain(%s) failed:%v", req.JobName, err.Error())
return err
return nil, err
}

return nil
return jobResult, nil
}

func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobVersionReq, jobId string) error {
func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobVersionReq, jobId string) (jobresult *models.CreateTrainJobResult, err error) {
jobResult, err := createTrainJobVersion(models.CreateTrainJobVersionParams{
Description: req.Description,
Config: models.TrainJobVersionConfig{
@@ -268,13 +268,13 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobVersionR
}, jobId)
if err != nil {
log.Error("CreateJob failed: %v", err.Error())
return err
return nil, err
}

attach, err := models.GetAttachmentByUUID(req.Uuid)
if err != nil {
log.Error("GetAttachmentByUUID(%s) failed:%v", strconv.FormatInt(jobResult.JobID, 10), err.Error())
return nil
return nil, err
}

err = models.CreateCloudbrain(&models.Cloudbrain{
@@ -293,7 +293,7 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobVersionR
})
if err != nil {
log.Error("CreateCloudbrain(%s) failed:%v", req.JobName, err.Error())
return err
return nil, err
}

repo := ctx.Repo.Repository
@@ -313,14 +313,14 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobVersionR
})
if err != nil {
ctx.ServerError("Cloudbrain", err)
return nil
return nil, err
}

//将训练任务的上一版本的isLatestVersion设置为"0"
latestTask, err := models.GetCloudbrainByJobIDAndIsLatestVersion(strconv.FormatInt(jobResult.JobID, 10), IsLatestVersion)
if err != nil {
ctx.ServerError("GetCloudbrainByJobIDAndIsLatestVersion faild:", err)
return nil
return nil, err
}

// lastVersionNum := jobResult.VersionName[1:]
@@ -333,17 +333,17 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobVersionR
err = models.SetVersionCountAndLatestVersionByJobIDAndVersionName(strconv.FormatInt(jobResult.JobID, 10), latestTask.VersionName, VersionListCount, NotLatestVersion)
if err != nil {
ctx.ServerError("UpdateJobVersionCount failed", err)
return nil
return nil, err
}

//将当前版本的isLatestVersion和任务数量更新
err = models.SetVersionCountAndLatestVersionByJobIDAndVersionName(strconv.FormatInt(jobResult.JobID, 10), jobResult.VersionName, VersionListCount, IsLatestVersion)
if err != nil {
ctx.ServerError("UpdateJobVersionCount failed", err)
return nil
return nil, err
}

return nil
return jobResult, err
}

func TransTrainJobStatus(status int) string {


+ 34
- 4
routers/repo/modelarts.go View File

@@ -850,7 +850,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
IsLatestVersion: isLatestVersion,
}

err = modelarts.GenerateTrainJob(ctx, req)
jobResult, err := modelarts.GenerateTrainJob(ctx, req)
if err != nil {
log.Error("GenerateTrainJob failed:%v", err.Error())
trainJobNewDataPrepare(ctx)
@@ -862,6 +862,34 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobNew, &form)
return
}
// 保存openi创建训练任务界面的参数
err = models.CreateTrainjobConfigDetail(&models.TrainjobConfigDetail{

JobName: req.JobName,
JobID: strconv.FormatInt(jobResult.JobID, 10),
VersionName: jobResult.VersionName,
ResourcePools: form.PoolID,
EngineVersions: form.EngineID,
FlavorInfos: form.Flavor,
TrainUrl: outputObsPath,
BootFile: form.BootFile,
Uuid: form.Attachment,
DatasetName: attach.Name,
Params: form.Params,
BranchName: branch_name,
})

if err != nil {
log.Error("CreateTrainjobConfigDetail failed:%v", err.Error())
trainJobNewVersionDataPrepare(ctx)
ctx.Data["bootFile"] = form.BootFile
ctx.Data["uuid"] = form.Attachment
ctx.Data["datasetName"] = attach.Name
ctx.Data["params"] = form.Params
ctx.Data["branch_name"] = branch_name
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form)
return
}
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/modelarts/train-job")
}

@@ -869,8 +897,8 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
ctx.Data["PageIsTrainJob"] = true
var jobID = ctx.Params(":jobid")
var versionName = ctx.Query("versionName")
jobID = "19373"
versionName = "V0009"
// jobID = "19373"
// versionName = "V0009"

jobName := form.JobName
uuid := form.Attachment
@@ -1038,7 +1066,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
PreVersionId: task.VersionID,
CommitID: commitID,
}
err = modelarts.GenerateTrainJobVersion(ctx, req, jobID)
jobResult, err := modelarts.GenerateTrainJobVersion(ctx, req, jobID)
if err != nil {
log.Error("GenerateTrainJob failed:%v", err.Error())
trainJobNewVersionDataPrepare(ctx)
@@ -1053,6 +1081,8 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
err = models.CreateTrainjobConfigDetail(&models.TrainjobConfigDetail{

JobName: req.JobName,
JobID: strconv.FormatInt(jobResult.JobID, 10),
VersionName: jobResult.VersionName,
ResourcePools: form.PoolID,
EngineVersions: form.EngineID,
FlavorInfos: form.Flavor,


+ 0
- 10
routers/routes/routes.go View File

@@ -962,16 +962,6 @@ 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.Group("/notebook", func() {
m.Get("", reqRepoCloudBrainReader, repo.NotebookIndex)
m.Group("/:jobid", func() {


Loading…
Cancel
Save