diff --git a/nomad/job_endpoint.go b/nomad/job_endpoint.go index 76f566393..985cdc02a 100644 --- a/nomad/job_endpoint.go +++ b/nomad/job_endpoint.go @@ -324,14 +324,6 @@ func (j *Job) Revert(args *structs.JobRevertRequest, reply *structs.JobRegisterR } ws := memdb.NewWatchSet() - jobV, err := snap.JobByIDAndVersion(ws, args.JobID, args.JobVersion) - if err != nil { - return err - } - if jobV == nil { - return fmt.Errorf("job %q at version %d not found", args.JobID, args.JobVersion) - } - cur, err := snap.JobByID(ws, args.JobID) if err != nil { return err @@ -339,11 +331,18 @@ func (j *Job) Revert(args *structs.JobRevertRequest, reply *structs.JobRegisterR if cur == nil { return fmt.Errorf("job %q not found", args.JobID) } - if args.JobVersion == cur.Version { return fmt.Errorf("can't revert to current version") } + jobV, err := snap.JobByIDAndVersion(ws, args.JobID, args.JobVersion) + if err != nil { + return err + } + if jobV == nil { + return fmt.Errorf("job %q at version %d not found", args.JobID, args.JobVersion) + } + // Build the register request reg := &structs.JobRegisterRequest{ Job: jobV.Copy(),