Swap validation checks

This commit is contained in:
Alex Dadgar
2017-04-27 10:51:28 -07:00
parent e0af3d7e19
commit 8d01a4b83b

View File

@@ -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(),