From 7f8c8fb3ebc2804914f1687be4a61f9960fb4494 Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 10:13:03 +0800 Subject: [PATCH 1/8] fix bug --- routers/api/v1/repo/modelarts.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index 8e311376c7..a1e4e0a652 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -470,7 +470,12 @@ func ModelList(ctx *context.APIContext) { status := models.StorageScheduleSucceed var fileInfos []storage.FileInfo if task.ComputeResource == models.NPUResource { - fileInfos, err = storage.GetObsListObject(task.JobName, "output/", parentDir, versionName) + //fileInfos, err = storage.GetObsListObject(task.JobName, "output/", parentDir, versionName) + prefix := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, "output/", versionName, parentDir), "/") + if !strings.HasSuffix(prefix, "/") { + prefix += "/" + } + fileInfos, err = storage.GetOneLevelAllObjectUnderDir(setting.Bucket, prefix, "") if err != nil { log.Info("get TrainJobListModel failed:", err) ctx.ServerError("GetObsListObject:", err) @@ -484,6 +489,10 @@ func ModelList(ctx *context.APIContext) { if models.IsTrainJobTerminal(task.Status) { if task.Status == models.GrampusStatusStopped { status = models.StorageNoFile + } else if task.Status == models.GrampusStatusFailed { + if task.AiCenter == "" { + status = models.StorageNoFile + } } else { record, _ := models.GetScheduleRecordByCloudbrainID(task.ID) if record != nil { -- 2.34.1 From 528e6bf4fe1c33a11c2c30000ba0cf842cc8a603 Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 10:58:24 +0800 Subject: [PATCH 2/8] debug --- routers/api/v1/repo/modelarts.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index a1e4e0a652..eb787dc0fc 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -471,11 +471,8 @@ func ModelList(ctx *context.APIContext) { var fileInfos []storage.FileInfo if task.ComputeResource == models.NPUResource { //fileInfos, err = storage.GetObsListObject(task.JobName, "output/", parentDir, versionName) - prefix := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, "output/", versionName, parentDir), "/") - if !strings.HasSuffix(prefix, "/") { - prefix += "/" - } - fileInfos, err = storage.GetOneLevelAllObjectUnderDir(setting.Bucket, prefix, "") + prefix := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName), "/") + fileInfos, err = storage.GetOneLevelAllObjectUnderDir(setting.Bucket, prefix, parentDir) if err != nil { log.Info("get TrainJobListModel failed:", err) ctx.ServerError("GetObsListObject:", err) -- 2.34.1 From 3ab49a622dae839f32c5d62872c636b297ba280d Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 11:17:25 +0800 Subject: [PATCH 3/8] debug --- modules/storage/obs.go | 66 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/modules/storage/obs.go b/modules/storage/obs.go index 846020c208..fc52209b41 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -360,6 +360,7 @@ func obsCopyFile(srcBucket string, srcKeyName string, destBucket string, destKey return nil } +/* func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relativePath string) ([]FileInfo, error) { input := &obs.ListObjectsInput{} input.Bucket = bucket @@ -414,6 +415,71 @@ func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relative } +*/ + +func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relativePath string) ([]FileInfo, error) { + input := &obs.ListObjectsInput{} + input.Bucket = bucket + input.Prefix = prefixRootPath + relativePath + if !strings.HasSuffix(input.Prefix, "/") { + input.Prefix += "/" + } + fileInfos := make([]FileInfo, 0) + prefixLen := len(input.Prefix) + fileMap := make(map[string]bool, 0) + index := 1 + for { + output, err := ObsCli.ListObjects(input) + if err == nil { + log.Info("Page:%d\n", index) + index++ + for _, val := range output.Contents { + log.Info("val key=" + val.Key) + var isDir bool + var fileName string + if val.Key == input.Prefix { + continue + } + fileName = val.Key[prefixLen:] + //log.Info("fileName =" + fileName) + files := strings.Split(fileName, "/") + if fileMap[files[0]] { + continue + } else { + fileMap[files[0]] = true + } + ParenDir := relativePath + fileName = files[0] + if len(files) > 1 { + isDir = true + ParenDir += fileName + "/" + } else { + isDir = false + } + fileInfo := FileInfo{ + ModTime: val.LastModified.Local().Format("2006-01-02 15:04:05"), + FileName: fileName, + Size: val.Size, + IsDir: isDir, + ParenDir: ParenDir, + } + fileInfos = append(fileInfos, fileInfo) + } + if output.IsTruncated { + input.Marker = output.NextMarker + } else { + break + } + } else { + if obsError, ok := err.(obs.ObsError); ok { + log.Error("Code:%s, Message:%s", obsError.Code, obsError.Message) + } + return nil, err + } + } + return fileInfos, nil +} + func GetAllObjectByBucketAndPrefix(bucket string, prefix string) ([]FileInfo, error) { input := &obs.ListObjectsInput{} input.Bucket = bucket -- 2.34.1 From c9a131c823b5e56614b400be5a5a1f32152d4c44 Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 11:37:19 +0800 Subject: [PATCH 4/8] debug --- modules/storage/obs.go | 1 + routers/api/v1/repo/modelarts.go | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/storage/obs.go b/modules/storage/obs.go index fc52209b41..e90e0e9b7e 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -421,6 +421,7 @@ func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relative input := &obs.ListObjectsInput{} input.Bucket = bucket input.Prefix = prefixRootPath + relativePath + log.Info(input.Prefix) if !strings.HasSuffix(input.Prefix, "/") { input.Prefix += "/" } diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index eb787dc0fc..e420cf2cd3 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -472,6 +472,7 @@ func ModelList(ctx *context.APIContext) { if task.ComputeResource == models.NPUResource { //fileInfos, err = storage.GetObsListObject(task.JobName, "output/", parentDir, versionName) prefix := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName), "/") + log.Info(prefix) fileInfos, err = storage.GetOneLevelAllObjectUnderDir(setting.Bucket, prefix, parentDir) if err != nil { log.Info("get TrainJobListModel failed:", err) -- 2.34.1 From e860bc355265e5b871e8068b68e4bb52ad21fb6d Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 11:41:21 +0800 Subject: [PATCH 5/8] debug --- routers/api/v1/repo/modelarts.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index e420cf2cd3..009b0c7a89 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -473,6 +473,9 @@ func ModelList(ctx *context.APIContext) { //fileInfos, err = storage.GetObsListObject(task.JobName, "output/", parentDir, versionName) prefix := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName), "/") log.Info(prefix) + if !strings.HasSuffix(prefix, "/") { + prefix += "/" + } fileInfos, err = storage.GetOneLevelAllObjectUnderDir(setting.Bucket, prefix, parentDir) if err != nil { log.Info("get TrainJobListModel failed:", err) -- 2.34.1 From 3de7bc82346130c3d6b9a82f7ad77eed5a73b202 Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 11:45:23 +0800 Subject: [PATCH 6/8] debug --- routers/api/v1/repo/modelarts.go | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index 009b0c7a89..489b0fb576 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -476,6 +476,7 @@ func ModelList(ctx *context.APIContext) { if !strings.HasSuffix(prefix, "/") { prefix += "/" } + log.Info(prefix) fileInfos, err = storage.GetOneLevelAllObjectUnderDir(setting.Bucket, prefix, parentDir) if err != nil { log.Info("get TrainJobListModel failed:", err) -- 2.34.1 From 7c2ba62918e36c00b7ee99b41ded450944d9169c Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 11:47:50 +0800 Subject: [PATCH 7/8] show models --- modules/storage/obs.go | 3 --- routers/api/v1/repo/modelarts.go | 3 --- 2 files changed, 6 deletions(-) diff --git a/modules/storage/obs.go b/modules/storage/obs.go index e90e0e9b7e..52e05a60d2 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -421,7 +421,6 @@ func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relative input := &obs.ListObjectsInput{} input.Bucket = bucket input.Prefix = prefixRootPath + relativePath - log.Info(input.Prefix) if !strings.HasSuffix(input.Prefix, "/") { input.Prefix += "/" } @@ -435,14 +434,12 @@ func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relative log.Info("Page:%d\n", index) index++ for _, val := range output.Contents { - log.Info("val key=" + val.Key) var isDir bool var fileName string if val.Key == input.Prefix { continue } fileName = val.Key[prefixLen:] - //log.Info("fileName =" + fileName) files := strings.Split(fileName, "/") if fileMap[files[0]] { continue diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index 489b0fb576..5a0e21ed8f 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -470,13 +470,10 @@ func ModelList(ctx *context.APIContext) { status := models.StorageScheduleSucceed var fileInfos []storage.FileInfo if task.ComputeResource == models.NPUResource { - //fileInfos, err = storage.GetObsListObject(task.JobName, "output/", parentDir, versionName) prefix := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName), "/") - log.Info(prefix) if !strings.HasSuffix(prefix, "/") { prefix += "/" } - log.Info(prefix) fileInfos, err = storage.GetOneLevelAllObjectUnderDir(setting.Bucket, prefix, parentDir) if err != nil { log.Info("get TrainJobListModel failed:", err) -- 2.34.1 From 75807fd123025e4b4ae1c45ffe15cd725fe3ee65 Mon Sep 17 00:00:00 2001 From: lewis <747342561@qq.com> Date: Thu, 3 Nov 2022 14:58:17 +0800 Subject: [PATCH 8/8] del unused code --- modules/storage/obs.go | 57 ------------------------------------------ 1 file changed, 57 deletions(-) diff --git a/modules/storage/obs.go b/modules/storage/obs.go index 52e05a60d2..57ef630291 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -360,63 +360,6 @@ func obsCopyFile(srcBucket string, srcKeyName string, destBucket string, destKey return nil } -/* -func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relativePath string) ([]FileInfo, error) { - input := &obs.ListObjectsInput{} - input.Bucket = bucket - input.Prefix = prefixRootPath + relativePath - if !strings.HasSuffix(input.Prefix, "/") { - input.Prefix += "/" - } - output, err := ObsCli.ListObjects(input) - fileInfos := make([]FileInfo, 0) - prefixLen := len(input.Prefix) - fileMap := make(map[string]bool, 0) - if err == nil { - for _, val := range output.Contents { - log.Info("val key=" + val.Key) - var isDir bool - var fileName string - if val.Key == input.Prefix { - continue - } - fileName = val.Key[prefixLen:] - log.Info("fileName =" + fileName) - files := strings.Split(fileName, "/") - if fileMap[files[0]] { - continue - } else { - fileMap[files[0]] = true - } - ParenDir := relativePath - fileName = files[0] - if len(files) > 1 { - isDir = true - ParenDir += fileName + "/" - } else { - isDir = false - } - fileInfo := FileInfo{ - ModTime: val.LastModified.Local().Format("2006-01-02 15:04:05"), - FileName: fileName, - Size: val.Size, - IsDir: isDir, - ParenDir: ParenDir, - } - fileInfos = append(fileInfos, fileInfo) - } - return fileInfos, err - } else { - if obsError, ok := err.(obs.ObsError); ok { - log.Error("Code:%s, Message:%s", obsError.Code, obsError.Message) - } - return nil, err - } - -} - -*/ - func GetOneLevelAllObjectUnderDir(bucket string, prefixRootPath string, relativePath string) ([]FileInfo, error) { input := &obs.ListObjectsInput{} input.Bucket = bucket -- 2.34.1