Class AbstractAllocateAllocationCommand

java.lang.Object
org.elasticsearch.cluster.routing.allocation.command.AbstractAllocateAllocationCommand
All Implemented Interfaces:
AllocationCommand, NamedWriteable, Writeable, org.elasticsearch.xcontent.ToXContent, org.elasticsearch.xcontent.ToXContentObject
Direct Known Subclasses:
AllocateReplicaAllocationCommand, BasePrimaryAllocationCommand

public abstract class AbstractAllocateAllocationCommand extends Object implements AllocationCommand
Abstract base class for allocating an unassigned shard to a node
  • Field Details

    • index

      protected final String index
    • shardId

      protected final int shardId
    • node

      protected final String node
  • Constructor Details

    • AbstractAllocateAllocationCommand

      protected AbstractAllocateAllocationCommand(String index, int shardId, String node)
    • AbstractAllocateAllocationCommand

      protected AbstractAllocateAllocationCommand(StreamInput in) throws IOException
      Read from a stream.
      Throws:
      IOException
  • Method Details

    • createAllocateParser

      protected static <T extends AbstractAllocateAllocationCommand.Builder<?>> org.elasticsearch.xcontent.ObjectParser<T,Void> createAllocateParser(String command)
    • writeTo

      public void writeTo(StreamOutput out) throws IOException
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Throws:
      IOException
    • index

      public String index()
      Get the index name
      Returns:
      name of the index
    • shardId

      public int shardId()
      Get the shard id
      Returns:
      id of the shard
    • node

      public String node()
      Get the id of the node
      Returns:
      id of the node
    • explainOrThrowMissingRoutingNode

      protected RerouteExplanation explainOrThrowMissingRoutingNode(RoutingAllocation allocation, boolean explain, DiscoveryNode discoNode)
      Handle case where a disco node cannot be found in the routing table. Usually means that it's not a data node.
    • explainOrThrowRejectedCommand

      protected RerouteExplanation explainOrThrowRejectedCommand(boolean explain, RoutingAllocation allocation, String reason)
      Utility method for rejecting the current allocation command based on provided reason
    • explainOrThrowRejectedCommand

      protected RerouteExplanation explainOrThrowRejectedCommand(boolean explain, RoutingAllocation allocation, RuntimeException rte)
      Utility method for rejecting the current allocation command based on provided exception
    • initializeUnassignedShard

      protected void initializeUnassignedShard(RoutingAllocation allocation, RoutingNodes routingNodes, RoutingNode routingNode, ShardRouting shardRouting)
      Initializes an unassigned shard on a node and removes it from the unassigned
      Parameters:
      allocation - the allocation
      routingNodes - the routing nodes
      routingNode - the node to initialize it to
      shardRouting - the shard routing that is to be matched in unassigned shards
    • initializeUnassignedShard

      protected void initializeUnassignedShard(RoutingAllocation allocation, RoutingNodes routingNodes, RoutingNode routingNode, ShardRouting shardRouting, @Nullable UnassignedInfo unassignedInfo, @Nullable RecoverySource recoverySource)
      Initializes an unassigned shard on a node and removes it from the unassigned
      Parameters:
      allocation - the allocation
      routingNodes - the routing nodes
      routingNode - the node to initialize it to
      shardRouting - the shard routing that is to be matched in unassigned shards
      unassignedInfo - unassigned info to override
      recoverySource - recovery source to override
    • toXContent

      public org.elasticsearch.xcontent.XContentBuilder toXContent(org.elasticsearch.xcontent.XContentBuilder builder, org.elasticsearch.xcontent.ToXContent.Params params) throws IOException
      Specified by:
      toXContent in interface org.elasticsearch.xcontent.ToXContent
      Throws:
      IOException
    • extraXContent

      protected void extraXContent(org.elasticsearch.xcontent.XContentBuilder builder) throws IOException
      Throws:
      IOException
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object