From b9ff5f42ca2ffcc50f417ac2d8255471273e3bc6 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Thu, 4 Feb 2021 16:57:31 +0800 Subject: [PATCH] create job --- models/cloudbrain.go | 25 ++++++++++------- modules/auth/modelarts.go | 1 + modules/modelarts/modelarts.go | 10 +++---- modules/modelarts/resty.go | 46 ++++++++++++++++++++++--------- routers/repo/modelarts.go | 3 +- templates/repo/modelarts/new.tmpl | 4 +++ 6 files changed, 59 insertions(+), 30 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 97fc9649f..20e3ac6d1 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -314,6 +314,11 @@ type Location struct { Path string `json:"path"` } +type NotebookResult struct { + ErrorCode string `json:"error_code"` + ErrorMsg string `json:"error_msg"` +} + type CreateNotebookResult struct { ErrorCode string `json:"error_code"` ErrorMsg string `json:"error_msg"` @@ -378,39 +383,39 @@ type GetNotebookResult struct { } type GetTokenParams struct { - Auth Auth `json:auth` + Auth Auth `json:"auth"` } type Auth struct { - Identity Identity `json:identity` - Scope Scope `json:scope` + Identity Identity `json:"identity"` + Scope Scope `json:"scope"` } type Scope struct { - Project Project `json:project` + Project Project `json:"project"` } type Project struct { - Name string `json:name` + Name string `json:"name"` } type Identity struct { Methods []string `json:"methods"` - Password Password `json:password` + Password Password `json:"password"` } type Password struct { - User NotebookUser `json:user` + User NotebookUser `json:"user"` } type NotebookUser struct { - Name string `json:name` + Name string `json:"name"` Password string `json:"password"` - Domain Domain `json:domain` + Domain Domain `json:"domain"` } type Domain struct { - Name string `json:name` + Name string `json:"name"` } const ( diff --git a/modules/auth/modelarts.go b/modules/auth/modelarts.go index 1bef4c825..fb8280b9e 100755 --- a/modules/auth/modelarts.go +++ b/modules/auth/modelarts.go @@ -8,6 +8,7 @@ import ( type CreateModelArtsForm struct { JobName string `form:"job_name" binding:"Required"` Attachment string `form:"attachment" binding:"Required"` + Description string `form:"description"` } func (f *CreateModelArtsForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go index 63434d5ef..775b345ad 100755 --- a/modules/modelarts/modelarts.go +++ b/modules/modelarts/modelarts.go @@ -11,23 +11,21 @@ import ( const ( storageTypeOBS = "obs" - autoStopDuration = 4 * 60 *60 + autoStopDuration = 4 * 60 * 60 flavor = "modelarts.kat1.xlarge" profileID = "Python3-ascend910-arm" - subTaskName = "task1" - DataSetMountPath = "/home/ma-user/work" NotebookEnv = "Python3" NotebookType = "Ascend" FlavorInfo = "Ascend: 1*Ascend 910 CPU: 24 核 96GiB (modelarts.kat1.xlarge)" ) -func GenerateTask(ctx *context.Context, jobName, uuid string) error { +func GenerateTask(ctx *context.Context, jobName, uuid, description string) error { dataActualPath := setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" jobResult, err := CreateJob(models.CreateNotebookParams{ JobName: jobName, - Description:"", + Description:description, ProfileID: profileID, Flavor: flavor, Spec: models.Spec{ @@ -45,7 +43,7 @@ func GenerateTask(ctx *context.Context, jobName, uuid string) error { }) if err != nil { - log.Error("CreateJob failed:", err.Error()) + log.Error("CreateJob failed: %v", err.Error()) return err } diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go index 0399a2ad7..b756bdb58 100755 --- a/modules/modelarts/resty.go +++ b/modules/modelarts/resty.go @@ -3,6 +3,7 @@ package modelarts import ( "code.gitea.io/gitea/modules/log" "crypto/tls" + "encoding/json" "fmt" "net/http" @@ -39,7 +40,7 @@ func checkSetting() { err := getToken() if err != nil { - log.Error("getToken falied:", err.Error()) + log.Error("getToken failed:%v", err) } } @@ -69,15 +70,12 @@ func getToken() error { }, } - log.Info("params:", params) - res, err := client.R(). SetHeader("Content-Type", "application/json"). SetBody(params). Post(setting.IamHost + urlGetToken) - log.Info("", res.Request.Body) if err != nil { - return fmt.Errorf("resty getToken: %s", err) + return fmt.Errorf("resty getToken: %v", err) } if res.StatusCode() != http.StatusCreated { @@ -85,7 +83,6 @@ func getToken() error { } TOKEN = res.Header().Get("X-Subject-Token") - log.Info(TOKEN) return nil } @@ -115,9 +112,16 @@ sendjob: goto sendjob } - if len(result.ErrorCode) != 0 { - log.Error("CreateJob failed(%s): %s", result.ErrorCode, result.ErrorMsg) - return &result, fmt.Errorf("CreateJob failed(%s): %s", result.ErrorCode, result.ErrorMsg) + var response models.NotebookResult + err = json.Unmarshal(res.Body(), &response) + if err != nil { + log.Error("json.Unmarshal failed: %s", err.Error()) + return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error()) + } + + if len(response.ErrorCode) != 0 { + log.Error("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) + return &result, fmt.Errorf("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) } return &result, nil @@ -147,8 +151,16 @@ sendjob: goto sendjob } - if len(result.ErrorCode) != 0 { - return &result, fmt.Errorf("CreateJob failed(%s): %s", result.ErrorCode, result.ErrorMsg) + var response models.NotebookResult + err = json.Unmarshal(res.Body(), &response) + if err != nil { + log.Error("json.Unmarshal failed: %s", err.Error()) + return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error()) + } + + if len(response.ErrorCode) != 0 { + log.Error("GetJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) + return &result, fmt.Errorf("GetJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) } return &result, nil @@ -179,8 +191,16 @@ sendjob: goto sendjob } - if len(result.ErrorCode) != 0 { - return &result, fmt.Errorf("CreateJob failed(%s): %s", result.ErrorCode, result.ErrorMsg) + var response models.NotebookResult + err = json.Unmarshal(res.Body(), &response) + if err != nil { + log.Error("json.Unmarshal failed: %s", err.Error()) + return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error()) + } + + if len(response.ErrorCode) != 0 { + log.Error("StopJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) + return &result, fmt.Errorf("StopJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) } return &result, nil diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index 8b3c71e4f..5e0589cbf 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -92,11 +92,12 @@ func ModelArtsCreate(ctx *context.Context, form auth.CreateModelArtsForm) { ctx.Data["PageIsCloudBrain"] = true jobName := form.JobName uuid := form.Attachment + description := form.Description //repo := ctx.Repo.Repository log.Info(uuid) - err := modelarts.GenerateTask(ctx, jobName, uuid) + err := modelarts.GenerateTask(ctx, jobName, uuid, description) if err != nil { ctx.RenderWithErr(err.Error(), tplModelArtsNew, &form) return diff --git a/templates/repo/modelarts/new.tmpl b/templates/repo/modelarts/new.tmpl index d5d2680a4..34640c6aa 100755 --- a/templates/repo/modelarts/new.tmpl +++ b/templates/repo/modelarts/new.tmpl @@ -139,6 +139,10 @@ +
+ + +