From df2ed92902d1d53e5f8d1a4b549947b0851a1b36 Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Wed, 14 Apr 2021 15:37:16 +0800 Subject: [PATCH] hidden para config --- models/cloudbrain.go | 32 +++++++++++++++- modules/modelarts/resty.go | 44 ++++++++++++++++++++++ routers/repo/modelarts.go | 28 +++++++++++++- templates/repo/modelarts/navbar.tmpl | 4 +- templates/repo/modelarts/trainjob/new.tmpl | 37 +++++++++--------- 5 files changed, 121 insertions(+), 24 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index e44fb944a..18ec70bb1 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -616,10 +616,10 @@ type GetConfigListResult struct { ErrorMsg string `json:"error_msg"` IsSuccess bool `json:"is_success"` ConfigTotalCount int `json:"config_total_count"` - ParaConfigs []ParaConfigs `json:"configs"` + ParaConfigs []ParaConfig `json:"configs"` } -type ParaConfigs struct { +type ParaConfig struct { ConfigName string `json:"config_name"` ConfigDesc string `json:"config_desc"` CreateTime int64 `json:"create_time"` @@ -629,6 +629,34 @@ type ParaConfigs struct { EngineVersion string `json:"engine_version"` UserImageUrl string `json:"user_image_url"` UserCommand string `json:"user_command"` + Result GetConfigResult +} + +type GetConfigResult struct { + ErrorCode string `json:"error_code"` + ErrorMsg string `json:"error_msg"` + IsSuccess bool `json:"is_success"` + ConfigName string `json:"config_name"` + Description string `json:"config_desc"` + WorkServerNum int `json:"worker_server_num"` + AppUrl string `json:"app_url"` //训练作业的代码目录 + BootFileUrl string `json:"boot_file_url"` //训练作业的代码启动文件,需要在代码目录下 + Parameter []Parameter `json:"parameter"` + DataUrl string `json:"data_url"` //训练作业需要的数据集OBS路径URL + //DatasetID string `json:"dataset_id"` + //DataVersionID string `json:"dataset_version_id"` + //DataSource []DataSource `json:"data_source"` + //SpecID int64 `json:"spec_id"` + EngineID int64 `json:"engine_id"` + //ModelID int64 `json:"model_id"` + TrainUrl string `json:"train_url"` //训练作业的输出文件OBS路径URL + LogUrl string `json:"log_url"` + //UserImageUrl string `json:"user_image_url"` + //UserCommand string `json:"user_command"` + //CreateVersion bool `json:"create_version"` + //Volumes []Volumes `json:"volumes"` + Flavor Flavor `json:"flavor"` + PoolID string `json:"pool_id"` } type ErrorResult struct { diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go index 876be5f9c..a49cb20fc 100755 --- a/modules/modelarts/resty.go +++ b/modules/modelarts/resty.go @@ -474,6 +474,50 @@ sendjob: return &result, nil } +func GetParaConfig(configName, configType string) (models.GetConfigResult, error) { + checkSetting() + client := getRestyClient() + var result models.GetConfigResult + + retry := 0 + +sendjob: + res, err := client.R(). + SetQueryParams(map[string]string{ + "config_type": configType, + }). + SetAuthToken(TOKEN). + SetResult(&result). + Get(HOST + "/v1/" + setting.ProjectID + urlTrainJobConfig + "/" + configName) + + if err != nil { + return result, fmt.Errorf("resty GetParaConfig: %v", err) + } + + if res.StatusCode() == http.StatusUnauthorized && retry < 1 { + retry++ + _ = getToken() + goto sendjob + } + + if res.StatusCode() != http.StatusOK { + var temp models.ErrorResult + if err = json.Unmarshal([]byte(res.String()), &temp); err != nil { + log.Error("json.Unmarshal failed(%s): %v", res.String(), err.Error()) + return result, fmt.Errorf("json.Unmarshal failed(%s): %v", res.String(), err.Error()) + } + log.Error("GetParaConfig failed(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) + return result, fmt.Errorf("获取参数配置详情失败(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) + } + + if !result.IsSuccess { + log.Error("GetParaConfig failed(%s): %s", result.ErrorCode, result.ErrorMsg) + return result, fmt.Errorf("获取参数配置详情失败(%s): %s", result.ErrorCode, result.ErrorMsg) + } + + return result, nil +} + func GetTrainJob(jobID, versionID string) (*models.GetTrainJobResult, error) { checkSetting() client := getRestyClient() diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index d9cb79f3e..0ab2ece29 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -352,12 +352,14 @@ func TrainJobNew(ctx *context.Context) { outputObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.OutputPath ctx.Data["train_url"] = outputObsPath - configList, err := modelarts.GetConfigList(modelarts.PerPage, 1, modelarts.SortByCreateTime, "desc", "", modelarts.ConfigTypeCustom) + configList, err := getConfigList(modelarts.PerPage, 1, modelarts.SortByCreateTime, "desc", "", modelarts.ConfigTypeCustom) if err != nil { - ctx.ServerError("GetConfigList failed:", err) + ctx.ServerError("getConfigList failed:", err) return } + ctx.Data["config_list"] = configList.ParaConfigs + log.Info(configList.ParaConfigs[0].ConfigName) ctx.HTML(200, tplModelArtsTrainJobNew) } @@ -784,3 +786,25 @@ func TrainJobGetConfigList(ctx *context.Context) { ctx.Data["log"] = result //ctx.HTML(http.StatusOK, tplModelArtsTrainJobShow) } + +func getConfigList(perPage, page int, sortBy, order, searchContent, configType string) (*models.GetConfigListResult, error) { + var result models.GetConfigListResult + + list, err := modelarts.GetConfigList(perPage, page, sortBy, order, searchContent, configType) + if err != nil { + log.Error("GetConfigList failed:", err) + return &result, err + } + + for _, config := range list.ParaConfigs { + paraConfig, err := modelarts.GetParaConfig(config.ConfigName, configType) + if err != nil { + log.Error("GetParaConfig failed:", err) + return &result, err + } + + config.Result = paraConfig + } + + return list, nil +} diff --git a/templates/repo/modelarts/navbar.tmpl b/templates/repo/modelarts/navbar.tmpl index 677e99a42..9d4b4d811 100755 --- a/templates/repo/modelarts/navbar.tmpl +++ b/templates/repo/modelarts/navbar.tmpl @@ -33,9 +33,11 @@ {{svg "octicon-inbox" 16}} {{.i18n.Tr "repo.modelarts.train_job"}} - + \ No newline at end of file diff --git a/templates/repo/modelarts/trainjob/new.tmpl b/templates/repo/modelarts/trainjob/new.tmpl index 5f1489303..fa26476b7 100755 --- a/templates/repo/modelarts/trainjob/new.tmpl +++ b/templates/repo/modelarts/trainjob/new.tmpl @@ -28,14 +28,14 @@ -

{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}

+