From 76f7f4487321ec8ff36c8e2771dc6c2ca0e2cca3 Mon Sep 17 00:00:00 2001 From: liuzx Date: Mon, 21 Feb 2022 11:45:09 +0800 Subject: [PATCH] update --- models/cloudbrain.go | 3 ++- modules/auth/modelarts.go | 1 + modules/modelarts/modelarts.go | 16 +++++++++------- modules/util/util.go | 15 +++++++++++++++ routers/repo/modelarts.go | 13 ++++++++----- templates/repo/modelarts/trainjob/new.tmpl | 6 +++--- 6 files changed, 38 insertions(+), 16 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 0a14ea7b4..b898a8532 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -91,7 +91,8 @@ type Cloudbrain struct { ID int64 `xorm:"pk autoincr"` JobID string `xorm:"INDEX NOT NULL"` JobType string `xorm:"INDEX NOT NULL DEFAULT 'DEBUG'"` - JobName string + JobName string `xorm:"INDEX NOT NULL"` + DisplayJobName string Status string UserID int64 RepoID int64 diff --git a/modules/auth/modelarts.go b/modules/auth/modelarts.go index 821cd72f8..74d9ea831 100755 --- a/modules/auth/modelarts.go +++ b/modules/auth/modelarts.go @@ -27,6 +27,7 @@ func (f *CreateModelArtsNotebookForm) Validate(ctx *macaron.Context, errs bindin } type CreateModelArtsTrainJobForm struct { + DisplayJobName string `form:"display_job_name" binding:"Required"` JobName string `form:"job_name" binding:"Required"` Attachment string `form:"attachment" binding:"Required"` BootFile string `form:"boot_file" binding:"Required"` diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go index 301c4cb0e..da38a7079 100755 --- a/modules/modelarts/modelarts.go +++ b/modules/modelarts/modelarts.go @@ -15,8 +15,8 @@ import ( const ( //notebook - storageTypeOBS = "obs" - autoStopDuration = 4 * 60 * 60 + storageTypeOBS = "obs" + autoStopDuration = 4 * 60 * 60 autoStopDurationMs = 4 * 60 * 60 * 1000 DataSetMountPath = "/home/ma-user/work" @@ -67,6 +67,7 @@ var ( type GenerateTrainJobReq struct { JobName string + DisplayJobName string Uuid string Description string CodeObsPath string @@ -275,12 +276,12 @@ func GenerateNotebook2(ctx *context.Context, jobName, uuid, description, flavor ImageID: "59a6e9f5-93c0-44dd-85b0-82f390c5d53a", PoolID: poolInfos.PoolInfo[0].PoolId, Feature: models.NotebookFeature, - Volume: models.VolumeReq{ - Capacity: 100, - Category: models.EVSCategory, - Ownership: models.ManagedOwnership, + Volume: models.VolumeReq{ + Capacity: 100, + Category: models.EVSCategory, + Ownership: models.ManagedOwnership, }, - WorkspaceID: "0", + WorkspaceID: "0", }) if err != nil { log.Error("createNotebook2 failed: %v", err.Error()) @@ -342,6 +343,7 @@ func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) (err error RepoID: ctx.Repo.Repository.ID, JobID: strconv.FormatInt(jobResult.JobID, 10), JobName: req.JobName, + DisplayJobName: req.DisplayJobName, JobType: string(models.JobTypeTrain), Type: models.TypeCloudBrainTwo, VersionID: jobResult.VersionID, diff --git a/modules/util/util.go b/modules/util/util.go index 017277281..bd0f98556 100755 --- a/modules/util/util.go +++ b/modules/util/util.go @@ -6,8 +6,10 @@ package util import ( "bytes" + "math/rand" "strconv" "strings" + "time" ) // OptionalBool a boolean that can be "null" @@ -110,3 +112,16 @@ func AddZero(t int64) (m string) { return strconv.FormatInt(t, 10) } } + +func ConvertDisplayJobNameToJobName(DisplayName string) (JobName string) { + t := time.Now() + JobName = "openi" + strings.ToLower(cutNameString(DisplayName, 15)) + "t" + t.Format("2006010215") + strconv.Itoa(int(rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(100000))) + return JobName +} + +func cutNameString(str string, lens int) string { + if len(str) < lens { + return str + } + return str[:lens] +} diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index 647afb0d0..1b7470148 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -25,6 +25,7 @@ import ( "code.gitea.io/gitea/modules/obs" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/storage" + "code.gitea.io/gitea/modules/util" ) const ( @@ -516,8 +517,8 @@ func trainJobNewDataPrepare(ctx *context.Context) error { //} t := time.Now() - var jobName = cutString(ctx.User.Name, 5) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:] - ctx.Data["job_name"] = jobName + var displayJobName = cutString(ctx.User.Name, 5) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:] + ctx.Data["display_job_name"] = displayJobName attachs, err := models.GetModelArtsTrainAttachments(ctx.User.ID) if err != nil { @@ -554,8 +555,8 @@ func trainJobNewDataPrepare(ctx *context.Context) error { } ctx.Data["flavor_infos"] = flavorInfos.Info - outputObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.OutputPath - ctx.Data["train_url"] = outputObsPath + // outputObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.OutputPath + // ctx.Data["train_url"] = outputObsPath ctx.Data["params"] = "" ctx.Data["branchName"] = ctx.Repo.BranchName @@ -841,7 +842,8 @@ func versionErrorDataPrepare(ctx *context.Context, form auth.CreateModelArtsTrai func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) { ctx.Data["PageIsTrainJob"] = true VersionOutputPath := modelarts.GetOutputPathByCount(modelarts.TotalVersionCount) - jobName := form.JobName + displayJobName := form.DisplayJobName + jobName := util.ConvertDisplayJobNameToJobName(displayJobName) uuid := form.Attachment description := form.Description workServerNumber := form.WorkServerNumber @@ -993,6 +995,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) req := &modelarts.GenerateTrainJobReq{ JobName: jobName, + DisplayJobName: displayJobName, DataUrl: dataPath, Description: description, CodeObsPath: codeObsPath, diff --git a/templates/repo/modelarts/trainjob/new.tmpl b/templates/repo/modelarts/trainjob/new.tmpl index 02fe8f4fc..0198dd813 100755 --- a/templates/repo/modelarts/trainjob/new.tmpl +++ b/templates/repo/modelarts/trainjob/new.tmpl @@ -80,7 +80,7 @@

{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:

- + 请输入字母、数字、_和-,最长64个字符,且不能以中划线(-)结尾。
@@ -391,8 +391,8 @@ } ] }, - job_name:{ - identifier : 'job_name', + display_job_name:{ + identifier : 'display_job_name', rules: [ { type: 'regExp[/^[a-zA-Z0-9-_]{1,64}[^-]$/]',