Class MigrationResultsUpdateTask

java.lang.Object
org.elasticsearch.cluster.ClusterStateUpdateTask
org.elasticsearch.upgrades.MigrationResultsUpdateTask
All Implemented Interfaces:
ClusterStateTaskListener

public class MigrationResultsUpdateTask extends ClusterStateUpdateTask
Handles updating the FeatureMigrationResults in the cluster state.
  • Method Details

    • upsert

      public static MigrationResultsUpdateTask upsert(String featureName, SingleFeatureMigrationResult status, ActionListener<ClusterState> listener)
      Creates a task that will update the status of a feature migration.
      Parameters:
      featureName - The name of the feature whose status should be updated.
      status - The status to be associated with the given feature.
      listener - A listener that will be called upon successfully updating the cluster state.
    • submit

      public void submit(ClusterService clusterService)
      Submit the update task so that it will actually be executed.
      Parameters:
      clusterService - The cluster service to which this task should be submitted.
    • execute

      public ClusterState execute(ClusterState currentState) throws Exception
      Description copied from class: ClusterStateUpdateTask
      Computes the cluster state that results from executing this task on the given state. Returns the *same instance* if no change is required, which is an important and valuable optimisation since it short-circuits the whole publication process and saves a bunch of time and effort.
      Specified by:
      execute in class ClusterStateUpdateTask
      Throws:
      Exception
    • clusterStateProcessed

      public void clusterStateProcessed(ClusterState oldState, ClusterState newState)
      Description copied from class: ClusterStateUpdateTask
      Called when the result of the ClusterStateUpdateTask.execute(org.elasticsearch.cluster.ClusterState) method has been processed properly by all listeners. The parameter is the state that was ultimately published. Implementations of this callback must not throw exceptions: an exception thrown here is logged by the master service at ERROR level and otherwise ignored, except in tests where it raises an AssertionError. If log-and-ignore is the right behaviour then implementations must do so themselves, typically using a more specific logger and at a less dramatic log level.
      Overrides:
      clusterStateProcessed in class ClusterStateUpdateTask
    • onFailure

      public void onFailure(Exception clusterStateUpdateException)
      Description copied from interface: ClusterStateTaskListener
      A callback for when task execution fails. May receive a NotMasterException if this node stopped being the master before this task was executed or a ProcessClusterEventTimeoutException if the task timed out before it was executed. If the task fails during execution then this method receives the corresponding exception. If the task executes successfully but the resulting cluster state publication fails then this method receives a FailedToCommitClusterStateException. If publication fails then a new master is elected and the update might or might not take effect, depending on whether or not the newly-elected master accepted the published state that failed to be committed.

      Use MasterService.isPublishFailureException(java.lang.Exception) to detect the "expected" master failure cases if needed.

      Implementations of this callback must not throw exceptions: an exception thrown here is logged by the master service at ERROR level and otherwise ignored, except in tests where it raises an AssertionError. If log-and-ignore is the right behaviour then implementations must do so themselves, typically using a more specific logger and at a less dramatic log level.