From 99c519faed03c08077ad2ef7bf7f247f9f745559 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Fri, 5 Feb 2021 11:16:22 +0800 Subject: [PATCH] del job --- models/cloudbrain.go | 4 ++++ modules/modelarts/resty.go | 39 ++++++++++++++++++++++++++++++++++++++ routers/repo/modelarts.go | 9 +++++++-- 3 files changed, 50 insertions(+), 2 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 34113fed6..23fa0a069 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -441,6 +441,10 @@ type NotebookActionResult struct { PreviousState string `json:"previous_state"` } +type NotebookDelResult struct { + InstanceID string `json:"instance_id"` +} + func Cloudbrains(opts *CloudbrainsOptions) ([]*Cloudbrain, int64, error) { sess := x.NewSession() defer sess.Close() diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go index 93ddfb75d..7c50547d6 100755 --- a/modules/modelarts/resty.go +++ b/modules/modelarts/resty.go @@ -205,3 +205,42 @@ sendjob: return &result, nil } + +func DelJob(jobID string) (*models.NotebookDelResult, error) { + checkSetting() + client := getRestyClient() + var result models.NotebookDelResult + + retry := 0 + +sendjob: + res, err := client.R(). + SetHeader("Content-Type", "application/json"). + SetAuthToken(TOKEN). + SetResult(&result). + Delete(HOST + "/v1/" + setting.ProjectID + urlNotebook + "/" + jobID) + + if err != nil { + return &result, fmt.Errorf("resty DelJob: %v", err) + } + + if res.StatusCode() == http.StatusUnauthorized && retry < 1 { + retry++ + _ = getToken() + goto sendjob + } + + 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("DelJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) + return &result, fmt.Errorf("DelJob failed(%s): %s", response.ErrorCode, response.ErrorMsg) + } + + return &result, nil +} diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index 45140c674..cf12eaece 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -185,8 +185,6 @@ func ModelArtsStop(ctx *context.Context) { return } - log.Info("pre(%s), current(%s)", res.PreviousState, res.CurrentStatus) - task.Status = res.CurrentStatus err = models.UpdateJob(task) if err != nil { @@ -211,6 +209,13 @@ func ModelArtsDel(ctx *context.Context) { return } + _, err = modelarts.DelJob(jobID) + if err != nil { + log.Error("DelJob(%s) failed:%v", task.JobName, err.Error()) + ctx.ServerError("DelJob failed", err) + return + } + err = models.DeleteJob(task) if err != nil { ctx.ServerError("DeleteJob failed", err)