From d9f2a9658a8628f0c8a2a9536bcd9c9299d4e85a Mon Sep 17 00:00:00 2001 From: liuzx Date: Mon, 25 Jul 2022 15:53:03 +0800 Subject: [PATCH] fix-2454 --- models/cloudbrain.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index dc316e943..351d64a69 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -2083,13 +2083,16 @@ func getCardNumAndTypeByFlavorname(FlavorName string) (int, string, error) { var beginIndex = strings.Index(FlavorName, ":") var lastIndex = strings.LastIndex(FlavorName, ":") var endIndex = strings.Index(FlavorName, "*") - cardNum, err := strconv.Atoi(strings.TrimSpace(FlavorName[beginIndex+1 : endIndex])) - if err != nil { - log.Error("strconv.Atoi failed: %v", err) - return 0, "", err + if endIndex >= (beginIndex+1) && lastIndex >= (endIndex+1) { + cardNum, err := strconv.Atoi(strings.TrimSpace(FlavorName[beginIndex+1 : endIndex])) + if err != nil { + log.Error("strconv.Atoi failed: %v", err) + return 0, "", err + } + cardType := strings.TrimSpace(FlavorName[endIndex+1 : lastIndex]) + return cardNum, cardType, err } - cardType := strings.TrimSpace(FlavorName[endIndex+1 : lastIndex]) - return cardNum, cardType, err + return 0, "", nil } } @@ -2109,9 +2112,9 @@ func GetCloudbrainCardNumAndType(task Cloudbrain) (int, string, error) { func GetCloudbrainFlavorName(task Cloudbrain) (string, error) { if task.Type == TypeCloudBrainOne { - ResourceSpec, GpuInfo, err := GetCloudBrainOneResourceSpec(task) + ResourceSpec, GpuInfo, err := getCloudBrainOneResourceSpec(task) if err != nil { - log.Info("GetCloudBrainOneResourceSpec err:", err) + log.Info("getCloudBrainOneResourceSpec err:", err) return "", err } else { if ResourceSpec == nil || GpuInfo == nil { @@ -2141,7 +2144,7 @@ func GetCloudbrainFlavorName(task Cloudbrain) (string, error) { return "", nil } -func GetCloudBrainOneResourceSpec(task Cloudbrain) (*ResourceSpec, *GpuInfo, error) { +func getCloudBrainOneResourceSpec(task Cloudbrain) (*ResourceSpec, *GpuInfo, error) { if task.ResourceSpecId >= 0 { if task.JobType == string(JobTypeTrain) { return CloudbrainTrainResourceSpecsMap[task.ResourceSpecId], CloudbrainTrainGpuInfosMap[task.GpuQueue], nil