AddJob adds a job to the manager
(job *Job)
| 80 | |
| 81 | // AddJob adds a job to the manager |
| 82 | func (jm *JobManager) AddJob(job *Job) error { |
| 83 | if err := validateJobDefinition(job); err != nil { |
| 84 | return err |
| 85 | } |
| 86 | |
| 87 | if job.Name == "" { |
| 88 | return errors.New("job name cannot be empty") |
| 89 | } |
| 90 | |
| 91 | if _, exists := jm.jobs[job.Name]; exists { |
| 92 | return fmt.Errorf("job '%s' already exists", job.Name) |
| 93 | } |
| 94 | |
| 95 | jobLog.Printf("Adding job: %s", job.Name) |
| 96 | jm.jobs[job.Name] = job |
| 97 | jm.jobOrder = append(jm.jobOrder, job.Name) |
| 98 | // Keep jobOrder sorted alphabetically after each addition |
| 99 | sort.Strings(jm.jobOrder) |
| 100 | return nil |
| 101 | } |
| 102 | |
| 103 | // GetJob retrieves a job by name |
| 104 | func (jm *JobManager) GetJob(name string) (*Job, bool) { |