From ffab506f84669280a075772f71d2903a9e25fb7e Mon Sep 17 00:00:00 2001 From: Preetha Appan Date: Wed, 18 Jul 2018 11:04:59 -0500 Subject: [PATCH] validate spread from job/task group validate methods --- nomad/structs/structs.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nomad/structs/structs.go b/nomad/structs/structs.go index 60be7e20c..6d2eb986e 100644 --- a/nomad/structs/structs.go +++ b/nomad/structs/structs.go @@ -2189,6 +2189,13 @@ func (j *Job) Validate() error { } } + for idx, spread := range j.Spreads { + if err := spread.Validate(); err != nil { + outer := fmt.Errorf("Spread %d validation failed: %s", idx+1, err) + mErr.Errors = append(mErr.Errors, outer) + } + } + // Check for duplicate task groups taskGroups := make(map[string]int) for idx, tg := range j.TaskGroups { @@ -3459,6 +3466,13 @@ func (tg *TaskGroup) Validate(j *Job) error { mErr.Errors = append(mErr.Errors, fmt.Errorf("Task Group %v should have a restart policy", tg.Name)) } + for idx, spread := range tg.Spreads { + if err := spread.Validate(); err != nil { + outer := fmt.Errorf("Spread %d validation failed: %s", idx+1, err) + mErr.Errors = append(mErr.Errors, outer) + } + } + if j.Type == JobTypeSystem { if tg.ReschedulePolicy != nil { mErr.Errors = append(mErr.Errors, fmt.Errorf("System jobs should not have a reschedule policy"))