|
|
|
@@ -288,10 +288,16 @@ func NotebookShow(ctx *context.Context) { |
|
|
|
datasetDownloadLink := "" |
|
|
|
if ctx.IsSigned { |
|
|
|
if task.Uuid != "" && task.UserID == ctx.User.ID { |
|
|
|
attachment, err := models.GetAttachmentByUUID(task.Uuid) |
|
|
|
uuidList := strings.Split(task.Uuid, ";") |
|
|
|
for _, uuidStr := range uuidList { |
|
|
|
attachment, err := models.GetAttachmentByUUID(uuidStr) |
|
|
|
if err == nil { |
|
|
|
datasetDownloadLink = datasetDownloadLink + attachment.S3DownloadURL() + ";" |
|
|
|
} |
|
|
|
} |
|
|
|
datasetName, err := GetDatasetNameByUUID(task.Uuid) |
|
|
|
if err == nil { |
|
|
|
task.DatasetName = attachment.Name |
|
|
|
datasetDownloadLink = attachment.S3DownloadURL() |
|
|
|
task.DatasetName = datasetName |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -998,7 +1004,6 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
ctx.RenderWithErr("GetDatasetNameByUUID error", tplModelArtsTrainJobNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
dataPath := GetObsDataPathByUUID(uuid) |
|
|
|
|
|
|
|
count, err := models.GetCloudbrainTrainJobCountByUserID(ctx.User.ID) |
|
|
|
if err != nil { |
|
|
|
@@ -1109,6 +1114,14 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) |
|
|
|
Value: modelarts.Ascend, |
|
|
|
}) |
|
|
|
} |
|
|
|
dataUrl, datasUrl, isMultiDataset := GetObsDataPathByUUID(uuid) |
|
|
|
dataPath := dataUrl |
|
|
|
if isMultiDataset { |
|
|
|
param = append(param, models.Parameter{ |
|
|
|
Label: modelarts.DatasUrl, |
|
|
|
Value: datasUrl, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//save param config |
|
|
|
if isSaveParam == "on" { |
|
|
|
@@ -1257,7 +1270,6 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
ctx.RenderWithErr("GetDatasetNameByUUID error", tplModelArtsTrainJobVersionNew, &form) |
|
|
|
return |
|
|
|
} |
|
|
|
dataPath := GetObsDataPathByUUID(uuid) |
|
|
|
|
|
|
|
canNewJob, _ := canUserCreateTrainJobVersion(ctx, latestTask.UserID) |
|
|
|
if !canNewJob { |
|
|
|
@@ -1343,6 +1355,14 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ |
|
|
|
Value: modelarts.Ascend, |
|
|
|
}) |
|
|
|
} |
|
|
|
dataUrl, datasUrl, isMultiDataset := GetObsDataPathByUUID(uuid) |
|
|
|
dataPath := dataUrl |
|
|
|
if isMultiDataset { |
|
|
|
param = append(param, models.Parameter{ |
|
|
|
Label: modelarts.DatasUrl, |
|
|
|
Value: datasUrl, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//save param config |
|
|
|
if isSaveParam == "on" { |
|
|
|
@@ -2451,20 +2471,27 @@ func TrainJobDownloadLogFile(ctx *context.Context) { |
|
|
|
ctx.Resp.Header().Set("Cache-Control", "max-age=0") |
|
|
|
http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently) |
|
|
|
} |
|
|
|
func GetObsDataPathByUUID(uuid string) string { |
|
|
|
var obsDataPath string |
|
|
|
uuidList := strings.Split(uuid, ";") |
|
|
|
for k, _ := range uuidList { |
|
|
|
if k <= 0 { |
|
|
|
obsDataPath = "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/" |
|
|
|
} |
|
|
|
if k > 0 { |
|
|
|
obsDataPathNext := ";" + "s3://" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/" |
|
|
|
obsDataPath = obsDataPath + obsDataPathNext |
|
|
|
func GetObsDataPathByUUID(uuidStr string) (string, string, bool) { |
|
|
|
var dataUrl string |
|
|
|
var datasUrl string |
|
|
|
uuidList := strings.Split(uuidStr, ";") |
|
|
|
if len(uuidList) <= 1 { |
|
|
|
dataUrl = "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuidStr[0:1], uuidStr[1:2]) + "/" + uuidStr + uuidStr + "/" |
|
|
|
datasUrl = "s3://" + setting.Bucket + "/" + setting.BasePath + path.Join(uuidStr[0:1], uuidStr[1:2]) + "/" + uuidStr + uuidStr + "/" |
|
|
|
isMultiDataset := false |
|
|
|
return dataUrl, datasUrl, isMultiDataset |
|
|
|
} else { |
|
|
|
for k, uuid := range uuidList { |
|
|
|
if k > 0 { |
|
|
|
datasUrlNext := ";" + "s3://" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/" |
|
|
|
datasUrl = datasUrl + datasUrlNext |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
firstDataset := uuidList[0] |
|
|
|
dataUrl = "/" + setting.Bucket + "/" + setting.BasePath + path.Join(firstDataset[0:1], firstDataset[1:2]) + "/" + firstDataset + firstDataset + "/" |
|
|
|
isMultiDataset := true |
|
|
|
return dataUrl, datasUrl, isMultiDataset |
|
|
|
} |
|
|
|
return obsDataPath |
|
|
|
} |
|
|
|
func GetDatasetNameByUUID(uuid string) (string, error) { |
|
|
|
uuidList := strings.Split(uuid, ";") |
|
|
|
|