|
- package cloudbrain
-
- import (
- "errors"
-
- "code.gitea.io/gitea/modules/context"
-
- "code.gitea.io/gitea/models"
- )
-
- func GenerateTask(ctx *context.Context, jobName, image, command string) error {
- jobResult, err := CreateJob(jobName, models.CreateJobParams{
- JobName: jobName,
- RetryCount: 1,
- GpuType: "dgx",
- Image: image,
- TaskRoles: []models.TaskRole{
- {
- Name: "task1",
- TaskNumber: 1,
- MinSucceededTaskCount: 1,
- MinFailedTaskCount: 1,
- CPUNumber: 2,
- GPUNumber: 1,
- MemoryMB: 16384,
- ShmMB: 8192,
- Command: command,
- NeedIBDevice: false,
- IsMainRole: false,
- },
- },
- })
- if err != nil {
- return err
- }
- if jobResult.Code != "S000" {
- return errors.New(jobResult.Msg)
- }
-
- var jobID = jobResult.Payload["jobId"].(string)
- err = models.CreateCloudbrain(&models.Cloudbrain{
- Status: string(models.JobWaiting),
- UserID: ctx.User.ID,
- RepoID: ctx.Repo.Repository.ID,
- JobID: jobID,
- JobName: jobName,
- })
-
- if err != nil {
- return err
- }
-
- return nil
- }
|