Browse Source

del task

tags/v1.21.12.1
yuyuanshifu 4 years ago
parent
commit
f18c06f806
3 changed files with 34 additions and 0 deletions
  1. +10
    -0
      models/cloudbrain.go
  2. +23
    -0
      routers/repo/cloudbrain.go
  3. +1
    -0
      routers/routes/routes.go

+ 10
- 0
models/cloudbrain.go View File

@@ -34,6 +34,7 @@ type Cloudbrain struct {
ContainerIp string
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
DeletedAt time.Time `xorm:"deleted"`
CanDebug bool `xorm:"-"`

User *User `xorm:"-"`
@@ -352,3 +353,12 @@ func updateJob(e Engine, job *Cloudbrain) error {
_, err := sess.Cols("status", "container_id", "container_ip").Update(job)
return err
}

func DeleteJob(job *Cloudbrain) error {
return deleteJob(x, job)
}

func deleteJob(e Engine, job *Cloudbrain) error {
_, err := e.ID(job.ID).Delete(job)
return err
}

+ 23
- 0
routers/repo/cloudbrain.go View File

@@ -247,6 +247,29 @@ func CloudBrainStop(ctx *context.Context) {
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/cloudbrain")
}

func CloudBrainDel(ctx *context.Context) {
var jobID = ctx.Params(":jobid")
task, err := models.GetCloudbrainByJobID(jobID)
if err != nil {
ctx.ServerError("GetCloudbrainByJobID failed", err)
return
}

if task.Status != string(models.JobStopped) {
log.Error("the job(%s) has not been stopped", task.JobName)
ctx.ServerError("the job has not been stopped", errors.New("the job has not been stopped"))
return
}

err = models.DeleteJob(task)
if err != nil {
ctx.ServerError("UpdateJob failed", err)
return
}

ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/cloudbrain")
}

func downloadCode(repo *models.Repository, codePath string) error {
if err := git.Clone(repo.RepoPath(), codePath, git.CloneRepoOptions{}); err != nil {
log.Error("Failed to clone repository: %s (%v)", repo.FullName(), err)


+ 1
- 0
routers/routes/routes.go View File

@@ -899,6 +899,7 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/debug", reqRepoCloudBrainReader, repo.CloudBrainDebug)
m.Post("/commit_image", reqRepoCloudBrainWriter, bindIgnErr(auth.CommitImageCloudBrainForm{}), repo.CloudBrainCommitImage)
m.Post("/stop", reqRepoCloudBrainWriter, repo.CloudBrainStop)
m.Post("/del", reqRepoCloudBrainWriter, repo.CloudBrainDel)
})
m.Get("/create", reqRepoCloudBrainWriter, repo.CloudBrainNew)
m.Post("/create", reqRepoCloudBrainWriter, bindIgnErr(auth.CreateCloudBrainForm{}), repo.CloudBrainCreate)


Loading…
Cancel
Save