code: func (j *resizeJob) run() error {
  	j.Logger.Printf("run resizeJob")
  	// Set job state to RUNNING.
  	j.setState(resizeJobStateRunning)
  
  	// Job can be considered done in the case where it doesn't require any action.
  	if !j.nodesArePending() {
  		j.Logger.Printf("resizeJob contains no pending tasks; mark as done")
  		j.result <- resizeJobStateDone
  		return nil
  	}
  
  	j.Logger.Printf("distribute tasks for resizeJob")
  	err := j.distributeResizeInstructions()
  	if err != nil {
  		j.result <- resizeJobStateAborted
  		return errors.Wrap(err, "distributing instructions")
  	}
  	return nil
  }
docs: // run distributes ResizeInstructions.