Skip to content

Commit fac2cc5

Browse files
committed
Centralised job task sorting
1 parent 789e719 commit fac2cc5

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

compute/model.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,12 @@ func (js *JobSettings) isMultiTask() bool {
588588
return js.Format == "MULTI_TASK" || len(js.Tasks) > 0
589589
}
590590

591+
func (js *JobSettings) sortTasksByKey() {
592+
sort.Slice(js.Tasks, func(i, j int) bool {
593+
return js.Tasks[i].TaskKey < js.Tasks[j].TaskKey
594+
})
595+
}
596+
591597
// JobList ...
592598
type JobList struct {
593599
Jobs []Job `json:"jobs"`

compute/resource_job.go

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"fmt"
66
"log"
7-
"sort"
87
"strconv"
98
"strings"
109
"time"
@@ -131,6 +130,7 @@ func (a JobsAPI) Restart(id string, timeout time.Duration) error {
131130
// Create creates a job on the workspace given the job settings
132131
func (a JobsAPI) Create(jobSettings JobSettings) (Job, error) {
133132
var job Job
133+
jobSettings.sortTasksByKey()
134134
err := a.client.Post(a.context, "/jobs/create", jobSettings, &job)
135135
return job, err
136136
}
@@ -156,6 +156,9 @@ func (a JobsAPI) Read(id string) (job Job, err error) {
156156
err = wrapMissingJobError(a.client.Get(a.context, "/jobs/get", map[string]int64{
157157
"job_id": jobID,
158158
}, &job), id)
159+
if job.Settings != nil {
160+
job.Settings.sortTasksByKey()
161+
}
159162
return
160163
}
161164

@@ -288,9 +291,6 @@ func ResourceJob() *schema.Resource {
288291
if err != nil {
289292
return err
290293
}
291-
sort.Slice(js.Tasks, func(i, j int) bool {
292-
return js.Tasks[i].TaskKey < js.Tasks[j].TaskKey
293-
})
294294
if js.isMultiTask() {
295295
ctx = context.WithValue(ctx, common.Api, common.API_2_1)
296296
}
@@ -311,9 +311,6 @@ func ResourceJob() *schema.Resource {
311311
if err != nil {
312312
return err
313313
}
314-
sort.Slice(job.Settings.Tasks, func(i, j int) bool {
315-
return job.Settings.Tasks[i].TaskKey < job.Settings.Tasks[j].TaskKey
316-
})
317314
d.Set("url", c.FormatURL("#job/", d.Id()))
318315
return common.StructToData(*job.Settings, jobSchema, d)
319316
},

0 commit comments

Comments
 (0)