code: func newResizeJob(existingNodes []*Node, node *Node, action string) *resizeJob {
  
  	// Build a map of uris to track their resize status.
  	// The value for a node will be set to true after that node
  	// has indicated that it has completed all resize instructions.
  	ids := make(map[string]bool)
  
  	if action == resizeJobActionRemove {
  		for _, n := range existingNodes {
  			// Exclude the removed node from the map.
  			if n.ID == node.ID {
  				continue
  			}
  			ids[n.ID] = false
  		}
  	} else if action == resizeJobActionAdd {
  		for _, n := range existingNodes {
  			ids[n.ID] = false
  		}
  		// Include the added node in the map for tracking.
  		ids[node.ID] = false
  	}
  
  	return &resizeJob{
  		ID:     rand.Int63(),
  		IDs:    ids,
  		action: action,
  		result: make(chan string),
  		Logger: logger.NopLogger,
  	}
  }
docs: // newResizeJob returns a new instance of resizeJob.