code: func (j *Job) setStatus(status Status) error {
  	if j.id == "" {
  		return fmt.Errorf("jobs: Cannot set status to %s because job doesn't have an id.", status)
  	}
  	if j.status == StatusDestroyed {
  		return fmt.Errorf("jobs: Cannot set job:%s status to %s because it was destroyed.", j.id, status)
  	}
  	// Use a transaction to move the job to the appropriate status set and set its status
  	t := newTransaction()
  	t.setStatus(j, status)
  	if err := t.exec(); err != nil {
  		return err
  	}
  	j.status = status
  	return nil
  }
docs: // setStatus updates the job's status in the database and moves it to the appropriate
  // status set. Attempting to set the status of a job which has been destroyed will have
  // no effect.