|
|
@@ -13,6 +13,8 @@ import ( |
|
|
|
"strings" |
|
|
|
"time" |
|
|
|
|
|
|
|
"code.gitea.io/gitea/modules/modelarts" |
|
|
|
|
|
|
|
"code.gitea.io/gitea/modules/git" |
|
|
|
"code.gitea.io/gitea/modules/storage" |
|
|
|
|
|
|
@@ -361,6 +363,58 @@ func CloudBrainStop(ctx *context.Context) { |
|
|
|
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/cloudbrain") |
|
|
|
} |
|
|
|
|
|
|
|
func StopJobsByUserID(userID int64) { |
|
|
|
cloudBrains, err := models.GetCloudbrainsNeededStopByUserID(userID) |
|
|
|
if err != nil { |
|
|
|
log.Warn("Failed to get cloudBrain info", err) |
|
|
|
return |
|
|
|
} |
|
|
|
StopJobs(cloudBrains) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
func StopJobsByRepoID(repoID int64) { |
|
|
|
cloudBrains, err := models.GetCloudbrainsNeededStopByRepoID(repoID) |
|
|
|
if err != nil { |
|
|
|
log.Warn("Failed to get cloudBrain info", err) |
|
|
|
return |
|
|
|
} |
|
|
|
StopJobs(cloudBrains) |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
*/ |
|
|
|
func StopJobs(cloudBrains []*models.Cloudbrain) { |
|
|
|
|
|
|
|
for _, taskInfo := range cloudBrains { |
|
|
|
|
|
|
|
if taskInfo.Type == models.TypeCloudBrainOne { |
|
|
|
err := cloudbrain.StopJob(taskInfo.JobID) |
|
|
|
logErrorAndUpdateJobStatus(err, taskInfo) |
|
|
|
} else { |
|
|
|
param := models.NotebookAction{ |
|
|
|
Action: models.ActionStop, |
|
|
|
} |
|
|
|
_, err := modelarts.StopJob(taskInfo.JobID, param) |
|
|
|
logErrorAndUpdateJobStatus(err, taskInfo) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func logErrorAndUpdateJobStatus(err error, taskInfo *models.Cloudbrain) { |
|
|
|
if err != nil { |
|
|
|
log.Warn("Failed to stop cloudBrain job:"+taskInfo.JobID, err) |
|
|
|
} else { |
|
|
|
taskInfo.Status = string(models.JobStopped) |
|
|
|
err = models.UpdateJob(taskInfo) |
|
|
|
if err != nil { |
|
|
|
log.Warn("UpdateJob failed", err) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func CloudBrainDel(ctx *context.Context) { |
|
|
|
var jobID = ctx.Params(":jobid") |
|
|
|
task, err := models.GetCloudbrainByJobID(jobID) |
|
|
|