code: func SwapNodeControllerTaint(kubeClient clientset.Interface, taintsToAdd, taintsToRemove []*v1.Taint, node *v1.Node) bool {
  	for _, taintToAdd := range taintsToAdd {
  		now := metav1.Now()
  		taintToAdd.TimeAdded = &now
  	}
  
  	err := controller.AddOrUpdateTaintOnNode(kubeClient, node.Name, taintsToAdd...)
  	if err != nil {
  		utilruntime.HandleError(
  			fmt.Errorf(
  				"unable to taint %+v unresponsive Node %q: %v",
  				taintsToAdd,
  				node.Name,
  				err))
  		return false
  	}
  	klog.V(4).Infof("Added %+v Taint to Node %v", taintsToAdd, node.Name)
  
  	err = controller.RemoveTaintOffNode(kubeClient, node.Name, node, taintsToRemove...)
  	if err != nil {
  		utilruntime.HandleError(
  			fmt.Errorf(
  				"unable to remove %+v unneeded taint from unresponsive Node %q: %v",
  				taintsToRemove,
  				node.Name,
  				err))
  		return false
  	}
  	klog.V(4).Infof("Made sure that Node %+v has no %v Taint", node.Name, taintsToRemove)
  
  	return true
  }
docs: // SwapNodeControllerTaint returns true in case of success and false
  // otherwise.