示例#1
0
文件: main.go 项目: joshie/lochness
func startJob(task *jobqueue.Task, agent *lochness.MistifyAgent) error {
	job := task.Job

	var err error
	var jobID string
	switch job.Action {
	case "fetch":
		jobID, err = agent.FetchImage(task.Guest.ID)
	case "create":
		jobID, err = agent.CreateGuest(task.Guest.ID)
	case "delete":
		jobID, err = agent.DeleteGuest(task.Guest.ID)
	default:
		if _, ok := config.ValidActions[job.Action]; !ok {
			return errors.New("invalid action")
		}
		jobID, err = agent.GuestAction(task.Guest.ID, job.Action)
	}

	if err != nil {
		return err
	}
	task.Job.RemoteID = jobID
	_ = updateJobStatus(task, jobqueue.JobStatusWorking, nil)
	return nil
}