Browse Source

update

fix-1114-patch
Gitea 3 years ago
parent
commit
6af7c8b767
2 changed files with 62 additions and 64 deletions
  1. +10
    -10
      modules/modelarts/modelarts.go
  2. +52
    -54
      routers/repo/modelarts.go

+ 10
- 10
modules/modelarts/modelarts.go View File

@@ -65,7 +65,7 @@ var (
)

type GenerateTrainJobReq struct {
JobName string
OpeniJobName string
ApiJobName string
Uuid string
Description string
@@ -118,7 +118,7 @@ type GenerateTrainJobVersionReq struct {
}

type GenerateInferenceJobReq struct {
JobName string
OpeniJobName string
ApiJobName string
Uuid string
Description string
@@ -301,7 +301,8 @@ func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) (err error
UserID: ctx.User.ID,
RepoID: ctx.Repo.Repository.ID,
JobID: strconv.FormatInt(jobResult.JobID, 10),
JobName: req.JobName,
JobName: req.OpeniJobName,
ApiJobName: req.ApiJobName,
JobType: string(models.JobTypeTrain),
Type: models.TypeCloudBrainTwo,
VersionID: jobResult.VersionID,
@@ -325,11 +326,10 @@ func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) (err error
EngineName: req.EngineName,
VersionCount: req.VersionCount,
TotalVersionCount: req.TotalVersionCount,
ApiJobName: jobResult.JobName,
})

if err != nil {
log.Error("CreateCloudbrain(%s) failed:%v", req.JobName, err.Error())
log.Error("CreateCloudbrain(%s) failed:%v", req.OpeniJobName, err.Error())
return err
}

@@ -386,7 +386,7 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobReq, job
UserID: ctx.User.ID,
RepoID: ctx.Repo.Repository.ID,
JobID: strconv.FormatInt(jobResult.JobID, 10),
JobName: req.JobName,
JobName: req.OpeniJobName,
ApiJobName: req.ApiJobName,
JobType: string(models.JobTypeTrain),
Type: models.TypeCloudBrainTwo,
@@ -415,7 +415,7 @@ func GenerateTrainJobVersion(ctx *context.Context, req *GenerateTrainJobReq, job
VersionCount: VersionListCount + 1,
})
if err != nil {
log.Error("CreateCloudbrain(%s) failed:%v", req.JobName, err.Error())
log.Error("CreateCloudbrain(%s) failed:%v", req.OpeniJobName, err.Error())
return err
}

@@ -523,7 +523,8 @@ func GenerateInferenceJob(ctx *context.Context, req *GenerateInferenceJobReq) (e
UserID: ctx.User.ID,
RepoID: ctx.Repo.Repository.ID,
JobID: strconv.FormatInt(jobResult.JobID, 10),
JobName: req.JobName,
JobName: req.OpeniJobName,
ApiJobName: jobResult.JobName,
JobType: string(models.JobTypeInference),
Type: models.TypeCloudBrainTwo,
VersionID: jobResult.VersionID,
@@ -551,11 +552,10 @@ func GenerateInferenceJob(ctx *context.Context, req *GenerateInferenceJobReq) (e
ModelVersion: req.ModelVersion,
CkptName: req.CkptName,
ResultUrl: req.ResultUrl,
ApiJobName: jobResult.JobName,
})

if err != nil {
log.Error("CreateCloudbrain(%s) failed:%v", req.JobName, err.Error())
log.Error("CreateCloudbrain(%s) failed:%v", req.OpeniJobName, err.Error())
return err
}



+ 52
- 54
routers/repo/modelarts.go View File

@@ -790,6 +790,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
VersionOutputPath := modelarts.GetOutputPathByCount(modelarts.TotalVersionCount)
openiJobName := form.JobName
apiJobName := util.ConvertToApiJobName(openiJobName)
jobName := apiJobName
uuid := form.Attachment
description := form.Description
workServerNumber := form.WorkServerNumber
@@ -800,10 +801,10 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
poolID := form.PoolID
isSaveParam := form.IsSaveParam
repo := ctx.Repo.Repository
codeLocalPath := setting.JobPath + apiJobName + modelarts.CodePath
codeObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.CodePath
outputObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.OutputPath + VersionOutputPath + "/"
logObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.LogPath + VersionOutputPath + "/"
codeLocalPath := setting.JobPath + jobName + modelarts.CodePath
codeObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.CodePath
outputObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.OutputPath + VersionOutputPath + "/"
logObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.LogPath + VersionOutputPath + "/"
dataPath := "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/"
branch_name := form.BranchName
isLatestVersion := modelarts.IsLatestVersion
@@ -883,14 +884,14 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
}

//todo: upload code (send to file_server todo this work?)
if err := obsMkdir(setting.CodePathPrefix + apiJobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil {
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil {
log.Error("Failed to obsMkdir_output: %s (%v)", repo.FullName(), err)
trainJobErrorNewDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to obsMkdir_output", tplModelArtsTrainJobNew, &form)
return
}

if err := obsMkdir(setting.CodePathPrefix + apiJobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil {
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil {
log.Error("Failed to obsMkdir_log: %s (%v)", repo.FullName(), err)
trainJobErrorNewDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to obsMkdir_log", tplModelArtsTrainJobNew, &form)
@@ -898,7 +899,7 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
}

// parentDir := VersionOutputPath + "/"
if err := uploadCodeToObs(codeLocalPath, apiJobName, ""); err != nil {
if err := uploadCodeToObs(codeLocalPath, jobName, ""); err != nil {
// if err := uploadCodeToObs(codeLocalPath, jobName, parentDir); err != nil {
log.Error("Failed to uploadCodeToObs: %s (%v)", repo.FullName(), err)
trainJobErrorNewDataPrepare(ctx, form)
@@ -971,8 +972,8 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
}

req := &modelarts.GenerateTrainJobReq{
JobName: openiJobName,
ApiJobName: apiJobName,
OpeniJobName: openiJobName,
ApiJobName: jobName,
DataUrl: dataPath,
Description: description,
CodeObsPath: codeObsPath,
@@ -1039,8 +1040,30 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
}
VersionOutputPath := modelarts.GetOutputPathByCount(latestTask.TotalVersionCount + 1)

openijobName := form.JobName
apiJobName := util.ConvertToApiJobName(openijobName)
//判断权限
canNewJob, _ := canUserCreateTrainJobVersion(ctx, latestTask.UserID)
if !canNewJob {
ctx.RenderWithErr("user cann't new trainjob", tplModelArtsTrainJobVersionNew, &form)
return
}

if err := paramCheckCreateTrainJob(form); err != nil {
log.Error("paramCheckCreateTrainJob failed:(%v)", err)
versionErrorDataPrepare(ctx, form)
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form)
return
}
PreVersionName := form.VersionName

task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, PreVersionName)
if err != nil {
log.Error("GetCloudbrainByJobIDAndVersionName(%s) failed:%v", jobID, err.Error())
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form)
return
}

apiJobName := task.ApiJobName
jobName := apiJobName
uuid := form.Attachment
description := form.Description
workServerNumber := form.WorkServerNumber
@@ -1051,40 +1074,20 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
poolID := form.PoolID
isSaveParam := form.IsSaveParam
repo := ctx.Repo.Repository
codeLocalPath := setting.JobPath + apiJobName + modelarts.CodePath
codeObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.CodePath + VersionOutputPath + "/"
outputObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.OutputPath + VersionOutputPath + "/"
logObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.LogPath + VersionOutputPath + "/"
codeLocalPath := setting.JobPath + jobName + modelarts.CodePath
codeObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.CodePath + VersionOutputPath + "/"
outputObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.OutputPath + VersionOutputPath + "/"
logObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.LogPath + VersionOutputPath + "/"
dataPath := "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/"
branch_name := form.BranchName
PreVersionName := form.VersionName
FlavorName := form.FlavorName
EngineName := form.EngineName
isLatestVersion := modelarts.IsLatestVersion

//判断权限
canNewJob, _ := canUserCreateTrainJobVersion(ctx, latestTask.UserID)
if !canNewJob {
ctx.RenderWithErr("user cann't new trainjob", tplModelArtsTrainJobVersionNew, &form)
return
}

if err := paramCheckCreateTrainJob(form); err != nil {
log.Error("paramCheckCreateTrainJob failed:(%v)", err)
versionErrorDataPrepare(ctx, form)
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form)
return
}

//todo: del the codeLocalPath
_, err = ioutil.ReadDir(codeLocalPath)
if err == nil {
os.RemoveAll(codeLocalPath)
} else {
log.Error("创建任务失败,原代码还未删除,请重试!: %s (%v)", repo.FullName(), err)
versionErrorDataPrepare(ctx, form)
ctx.RenderWithErr("创建任务失败,原代码还未删除,请重试!", tplModelArtsTrainJobVersionNew, &form)
return
}
// os.RemoveAll(codeLocalPath)

@@ -1100,14 +1103,14 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
}

//todo: upload code (send to file_server todo this work?)
if err := obsMkdir(setting.CodePathPrefix + apiJobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil {
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.OutputPath + VersionOutputPath + "/"); err != nil {
log.Error("Failed to obsMkdir_output: %s (%v)", repo.FullName(), err)
versionErrorDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to obsMkdir_output", tplModelArtsTrainJobVersionNew, &form)
return
}

if err := obsMkdir(setting.CodePathPrefix + apiJobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil {
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil {
log.Error("Failed to obsMkdir_log: %s (%v)", repo.FullName(), err)
versionErrorDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to obsMkdir_log", tplModelArtsTrainJobVersionNew, &form)
@@ -1117,7 +1120,7 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
parentDir := VersionOutputPath + "/"
// parentDir := ""
// if err := uploadCodeToObs(codeLocalPath, jobName, ""); err != nil {
if err := uploadCodeToObs(codeLocalPath, apiJobName, parentDir); err != nil {
if err := uploadCodeToObs(codeLocalPath, jobName, parentDir); err != nil {
log.Error("Failed to uploadCodeToObs: %s (%v)", repo.FullName(), err)
versionErrorDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to uploadCodeToObs", tplModelArtsTrainJobVersionNew, &form)
@@ -1194,15 +1197,9 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ
return
}

task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, PreVersionName)
if err != nil {
log.Error("GetCloudbrainByJobIDAndVersionName(%s) failed:%v", jobID, err.Error())
ctx.RenderWithErr(err.Error(), tplModelArtsTrainJobVersionNew, &form)
return
}
req := &modelarts.GenerateTrainJobReq{
JobName: task.JobName,
ApiJobName: apiJobName,
OpeniJobName: task.JobName,
ApiJobName: task.ApiJobName,
DataUrl: dataPath,
Description: description,
CodeObsPath: codeObsPath,
@@ -1629,6 +1626,7 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference
VersionOutputPath := modelarts.GetOutputPathByCount(modelarts.TotalVersionCount)
openiJobName := form.JobName
apiJobName := util.ConvertToApiJobName(openiJobName)
jobName := apiJobName
uuid := form.Attachment
description := form.Description
workServerNumber := form.WorkServerNumber
@@ -1638,10 +1636,10 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference
params := form.Params
poolID := form.PoolID
repo := ctx.Repo.Repository
codeLocalPath := setting.JobPath + apiJobName + modelarts.CodePath
codeObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.CodePath
resultObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.ResultPath + VersionOutputPath + "/"
logObsPath := "/" + setting.Bucket + modelarts.JobPath + apiJobName + modelarts.LogPath + VersionOutputPath + "/"
codeLocalPath := setting.JobPath + jobName + modelarts.CodePath
codeObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.CodePath
resultObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.ResultPath + VersionOutputPath + "/"
logObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.LogPath + VersionOutputPath + "/"
dataPath := "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + uuid + "/"
branch_name := form.BranchName
FlavorName := form.FlavorName
@@ -1725,21 +1723,21 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference
}

//todo: upload code (send to file_server todo this work?)
if err := obsMkdir(setting.CodePathPrefix + apiJobName + modelarts.ResultPath + VersionOutputPath + "/"); err != nil {
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.ResultPath + VersionOutputPath + "/"); err != nil {
log.Error("Failed to obsMkdir_result: %s (%v)", repo.FullName(), err)
inferenceJobErrorNewDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to obsMkdir_result", tplModelArtsInferenceJobNew, &form)
return
}

if err := obsMkdir(setting.CodePathPrefix + apiJobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil {
if err := obsMkdir(setting.CodePathPrefix + jobName + modelarts.LogPath + VersionOutputPath + "/"); err != nil {
log.Error("Failed to obsMkdir_log: %s (%v)", repo.FullName(), err)
inferenceJobErrorNewDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to obsMkdir_log", tplModelArtsInferenceJobNew, &form)
return
}

if err := uploadCodeToObs(codeLocalPath, apiJobName, ""); err != nil {
if err := uploadCodeToObs(codeLocalPath, jobName, ""); err != nil {
log.Error("Failed to uploadCodeToObs: %s (%v)", repo.FullName(), err)
inferenceJobErrorNewDataPrepare(ctx, form)
ctx.RenderWithErr("Failed to uploadCodeToObs", tplModelArtsInferenceJobNew, &form)
@@ -1776,7 +1774,7 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference
}

req := &modelarts.GenerateInferenceJobReq{
JobName: openiJobName,
OpeniJobName: openiJobName,
ApiJobName: apiJobName,
DataUrl: dataPath,
Description: description,


Loading…
Cancel
Save