Browse Source

restart opt

tags/v1.22.1.1^2
lewis 3 years ago
parent
commit
15f1289b6b
3 changed files with 48 additions and 11 deletions
  1. +25
    -0
      models/cloudbrain.go
  2. +21
    -6
      modules/cloudbrain/cloudbrain.go
  3. +2
    -5
      routers/repo/cloudbrain.go

+ 25
- 0
models/cloudbrain.go View File

@@ -1210,3 +1210,28 @@ func GetCloudbrainTrainJobCountByUserID(userID int64) (int, error) {
And("job_type = ? and user_id = ? and type = ?", JobTypeTrain, userID, TypeCloudBrainTwo).Count(new(Cloudbrain)) And("job_type = ? and user_id = ? and type = ?", JobTypeTrain, userID, TypeCloudBrainTwo).Count(new(Cloudbrain))
return int(count), err return int(count), err
} }

func RestartCloudbrain(old *Cloudbrain, new *Cloudbrain) (err error) {
sess := x.NewSession()
defer sess.Close()

if err = sess.Begin(); err != nil {
return err
}

if _, err = sess.Delete(old); err != nil {
sess.Rollback()
return err
}

if _, err = sess.Insert(new); err != nil {
sess.Rollback()
return err
}

if err = sess.Commit(); err != nil {
return err
}

return nil
}

+ 21
- 6
modules/cloudbrain/cloudbrain.go View File

@@ -223,7 +223,7 @@ func GenerateTask(ctx *context.Context, jobName, image, command, uuid, codePath,
return nil return nil
} }


func RestartTask(ctx *context.Context, task *models.Cloudbrain) error {
func RestartTask(ctx *context.Context, task *models.Cloudbrain, newJobID *string) error {
dataActualPath := setting.Attachment.Minio.RealPath + dataActualPath := setting.Attachment.Minio.RealPath +
setting.Attachment.Minio.Bucket + "/" + setting.Attachment.Minio.Bucket + "/" +
setting.Attachment.Minio.BasePath + setting.Attachment.Minio.BasePath +
@@ -313,7 +313,7 @@ func RestartTask(ctx *context.Context, task *models.Cloudbrain) error {
}, },
}) })
if err != nil { if err != nil {
log.Error("CreateJob failed:", err.Error(), ctx.Data["MsgID"])
log.Error("CreateJob failed:%v", err.Error(), ctx.Data["MsgID"])
return err return err
} }
if jobResult.Code != Success { if jobResult.Code != Success {
@@ -322,14 +322,29 @@ func RestartTask(ctx *context.Context, task *models.Cloudbrain) error {
} }


var jobID = jobResult.Payload["jobId"].(string) var jobID = jobResult.Payload["jobId"].(string)
task.JobID = jobID
task.Status = string(models.JobWaiting)
err = models.UpdateJob(task)
newTask := &models.Cloudbrain{
Status: string(models.JobWaiting),
UserID: task.UserID,
RepoID: task.RepoID,
JobID: jobID,
JobName: task.JobName,
SubTaskName: task.SubTaskName,
JobType: task.JobType,
Type: task.Type,
Uuid: task.Uuid,
Image: task.Image,
GpuQueue: task.GpuQueue,
ResourceSpecId: task.ResourceSpecId,
ComputeResource: task.ComputeResource,
}


err = models.RestartCloudbrain(task, newTask)
if err != nil { if err != nil {
log.Error("UpdateJob(%s) failed:%v", jobName, err.Error(), ctx.Data["MsgID"])
log.Error("RestartCloudbrain(%s) failed:%v", jobName, err.Error(), ctx.Data["MsgID"])
return err return err
} }


*newJobID = jobID

return nil return nil
} }

+ 2
- 5
routers/repo/cloudbrain.go View File

@@ -251,7 +251,7 @@ func CloudBrainRestart(ctx *context.Context) {
var jobID = ctx.Params(":jobid") var jobID = ctx.Params(":jobid")
var resultCode = "0" var resultCode = "0"
var errorMsg = "" var errorMsg = ""
var status = ""
var status = string(models.JobWaiting)


task := ctx.Cloudbrain task := ctx.Cloudbrain
for { for {
@@ -291,7 +291,7 @@ func CloudBrainRestart(ctx *context.Context) {
} }
} }


err = cloudbrain.RestartTask(ctx, task)
err = cloudbrain.RestartTask(ctx, task, &jobID)
if err != nil { if err != nil {
log.Error("RestartTask failed:%v", err.Error(), ctx.Data["MsgID"]) log.Error("RestartTask failed:%v", err.Error(), ctx.Data["MsgID"])
resultCode = "-1" resultCode = "-1"
@@ -299,9 +299,6 @@ func CloudBrainRestart(ctx *context.Context) {
break break
} }


status = task.Status
jobID = task.JobID

break break
} }




Loading…
Cancel
Save