@@ -4,6 +4,7 @@ import (
"code.gitea.io/gitea/entity"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/services/ai_task_service/context"
"errors"
"strings"
@@ -30,7 +31,15 @@ func (b *DatasetBuilder) Build(ctx *context.CreationContext) ([]entity.Container
if uuid == "" {
return nil, nil
}
datasetInfos, datasetNames, err := models.GetDatasetInfo(uuid, ctx.Request.ComputeSource.Name)
var datasetInfos map[string]models.DatasetInfo
var datasetNames string
var err error
// models.GetDatasetInfo 是使用的以前的方法,所以此处按集群类型适配
if ctx.Request.Cluster == models.C2NetCluster {
datasetInfos, datasetNames, err = models.GetDatasetInfo(uuid, ctx.Request.ComputeSource.Name)
} else {
datasetInfos, datasetNames, err = models.GetDatasetInfo(uuid)
}
if err != nil {
log.Error("GetDatasetInfo failed: %v", err)
return nil, errors.New("cloudbrain.error.dataset_select")
@@ -41,25 +50,36 @@ func (b *DatasetBuilder) Build(ctx *context.CreationContext) ([]entity.Container
}
var data []entity.ContainerData
for _, datasetInfo := range datasetInfos {
name := datasetInfo.FullName
//如果不是压缩包,那么文件名是去掉后缀以后的数据集名称
if b.Opts.NotArchive {
name = datasetInfo.Name
}
if datasetInfo.Type == models.TypeCloudBrainOne {
//如果返回的localPath已经带了实际路径的前缀,需要去除掉以后才是在minio上的objectKey
objectKey := datasetInfo.DataLocalPath
objectKey = strings.TrimPrefix(objectKey, setting.Attachment.Minio.RealPath)
objectKey = strings.TrimPrefix(objectKey, setting.Attachment.Minio.Bucket)
objectKey = strings.TrimPrefix(objectKey, "/")
data = append(data, entity.ContainerData{
Name: datasetInfo.FullName,
Name: name,
Bucket: minioUploader.GetBucket(),
EndPoint: minioUploader.GetEndpoint(),
ObjectKey: datasetInfo.DataLocalPath,
ObjectKey: objectKey ,
ReadOnly: b.Opts.ReadOnly,
ContainerPath: b.Opts.ContainerPath + "/" + datasetI nfo.FullN ame,
RealPath: minioUploader.GetRealPath(datasetInfo.DataLocalPath ),
ContainerPath: b.Opts.ContainerPath + "/" + name,
RealPath: minioUploader.GetRealPath(objectKey ),
})
} else {
objectKey := datasetInfo.DataLocalPath + datasetInfo.FullName
data = append(data, entity.ContainerData{
Name: datasetI nfo.FullN ame,
Name: name,
Bucket: obsUploader.GetBucket(),
EndPoint: obsUploader.GetEndpoint(),
ObjectKey: datasetInfo.DataLocalPath + datasetInfo.FullName ,
ObjectKey: objectKey ,
ReadOnly: b.Opts.ReadOnly,
ContainerPath: b.Opts.ContainerPath + "/" + datasetI nfo.FullN ame,
ContainerPath: b.Opts.ContainerPath + "/" + name,
})
}