| @@ -1680,6 +1680,38 @@ func GetCloudbrainsNeededStopByUserID(userID int64) ([]*Cloudbrain, error) { | |||
| return cloudBrains, err | |||
| } | |||
| func GetWaittingTop() ([]*CloudbrainInfo, error) { | |||
| sess := x.NewSession() | |||
| defer sess.Close() | |||
| var cond = builder.NewCond() | |||
| cond = cond.And( | |||
| builder.Eq{"cloudbrain.status": string(JobWaiting)}, | |||
| ) | |||
| sess.OrderBy("cloudbrain.created_unix ASC limit 1") | |||
| cloudbrains := make([]*CloudbrainInfo, 0, 1) | |||
| if err := sess.Table(&Cloudbrain{}).Where(cond). | |||
| Find(&cloudbrains); err != nil { | |||
| log.Info("find error.") | |||
| } | |||
| return cloudbrains, nil | |||
| } | |||
| func GetModelartsReDebugTaskByJobId(jobID string) ([]*Cloudbrain, error) { | |||
| sess := x.NewSession() | |||
| defer sess.Close() | |||
| var cond = builder.NewCond() | |||
| cond = cond.And( | |||
| builder.Eq{"cloudbrain.job_id": jobID}, | |||
| ) | |||
| sess.OrderBy("cloudbrain.created_unix ASC limit 10") | |||
| // sess.OrderBy("cloudbrain.created_unix DSC limit 10") | |||
| cloudbrains := make([]*Cloudbrain, 0, 10) | |||
| if err := sess.Table(&Cloudbrain{}).Unscoped().Where(cond). | |||
| Find(&cloudbrains); err != nil { | |||
| log.Info("find error.") | |||
| } | |||
| return cloudbrains, nil | |||
| } | |||
| func GetCloudbrainsNeededStopByRepoID(repoID int64) ([]*Cloudbrain, error) { | |||
| cloudBrains := make([]*Cloudbrain, 0) | |||
| err := x.Cols("job_id", "status", "type", "job_type", "version_id", "start_time").Where("repo_id=? AND status !=?", repoID, string(JobStopped)).Find(&cloudBrains) | |||
| @@ -211,21 +211,6 @@ func GetAllStatusCloudBrain() map[string]int { | |||
| return cloudBrainStatusResult | |||
| } | |||
| func GetWaittingTop() ([]*CloudbrainInfo, error) { | |||
| sess := x.NewSession() | |||
| defer sess.Close() | |||
| var cond = builder.NewCond() | |||
| cond = cond.And( | |||
| builder.Eq{"cloudbrain.status": string(JobWaiting)}, | |||
| ) | |||
| sess.OrderBy("cloudbrain.created_unix ASC limit 10") | |||
| cloudbrains := make([]*CloudbrainInfo, 0, 10) | |||
| if err := sess.Table(&Cloudbrain{}).Where(cond). | |||
| Find(&cloudbrains); err != nil { | |||
| log.Info("find error.") | |||
| } | |||
| return cloudbrains, nil | |||
| } | |||
| func GetRunningTop() ([]*CloudbrainInfo, error) { | |||
| sess := x.NewSession() | |||
| defer sess.Close() | |||
| @@ -3076,18 +3076,18 @@ func GetCloudbrainFlavorName(task models.Cloudbrain) (string, error) { | |||
| ReplaceFlavorName := strings.ReplaceAll(task.FlavorName, ":", ":") | |||
| return ReplaceFlavorName, nil | |||
| } else if task.Type == models.TypeCloudBrainTwo && task.FlavorName == "" && task.FlavorCode != "" { | |||
| index := strings.LastIndex(task.FlavorCode, ".") | |||
| cardNum, err := strconv.Atoi(strings.TrimSpace(task.FlavorCode[index+1 : len(task.FlavorCode)])) | |||
| CloudbrainTwoFlavorName := getFlavorNameByFlavorCode(task.FlavorCode) | |||
| return CloudbrainTwoFlavorName, nil | |||
| } else if task.Type == models.TypeCloudBrainTwo && task.JobType == string(models.JobTypeDebug) && task.FlavorName == "" && task.FlavorCode == "" { | |||
| tasks, err := models.GetModelartsReDebugTaskByJobId(task.JobID) | |||
| if err != nil { | |||
| log.Error("strconv.Atoi failed: %v", err) | |||
| return "", err | |||
| } | |||
| CloudbrainTwoFlavorName := "Ascend:" + strings.TrimSpace(task.FlavorCode[index+1:len(task.FlavorCode)]) + | |||
| "*Ascend-910(" + strconv.Itoa(cardNum*32) + "GB)|ARM:" + strconv.Itoa(cardNum*24) + | |||
| "核" + strconv.Itoa(cardNum*256) + "GB" | |||
| return CloudbrainTwoFlavorName, nil | |||
| if len(tasks) >= 1 { | |||
| return getFlavorNameByFlavorCode(tasks[0].FlavorCode), nil | |||
| } | |||
| return "", nil | |||
| } | |||
| return "", nil | |||
| } | |||
| @@ -3112,3 +3112,15 @@ func getCloudBrainOneResourceSpec(task models.Cloudbrain) (*models.ResourceSpec, | |||
| } | |||
| return nil, nil, nil | |||
| } | |||
| func getFlavorNameByFlavorCode(flavorCode string) string { | |||
| index := strings.LastIndex(flavorCode, ".") | |||
| cardNum, err := strconv.Atoi(strings.TrimSpace(flavorCode[index+1 : len(flavorCode)])) | |||
| if err != nil { | |||
| log.Error("strconv.Atoi failed: %v", err) | |||
| return "" | |||
| } | |||
| CloudbrainTwoFlavorName := "Ascend:" + strings.TrimSpace(flavorCode[index+1:len(flavorCode)]) + | |||
| "*Ascend-910(" + strconv.Itoa(cardNum*32) + "GB)|ARM:" + strconv.Itoa(cardNum*24) + | |||
| "核" + strconv.Itoa(cardNum*256) + "GB" | |||
| return CloudbrainTwoFlavorName | |||
| } | |||