public class AllocateUnassignedDecision extends AbstractAllocationDecision
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params
Writeable.Reader<V>, Writeable.Writer<V>
Modifier and Type | Field and Description |
---|---|
static AllocateUnassignedDecision |
NOT_TAKEN
a constant representing a shard decision where no decision was taken
|
nodeDecisions, targetNode
EMPTY_PARAMS
Constructor and Description |
---|
AllocateUnassignedDecision(StreamInput in) |
Modifier and Type | Method and Description |
---|---|
static AllocateUnassignedDecision |
delayed(long remainingDelay,
long totalDelay,
java.util.List<NodeAllocationResult> decisions)
Returns a NO decision for a delayed shard allocation on a replica shard, with the individual node-level
decisions that comprised the final NO decision, if in explain mode.
|
boolean |
equals(java.lang.Object other) |
static AllocateUnassignedDecision |
fromDecision(Decision decision,
DiscoveryNode assignedNode,
java.util.List<NodeAllocationResult> nodeDecisions)
Creates a
AllocateUnassignedDecision from the given Decision and the assigned node, if any. |
AllocationDecision |
getAllocationDecision()
Returns the
AllocationDecision denoting the result of an allocation attempt. |
java.lang.String |
getAllocationId()
Gets the allocation id for the existing shard copy that the allocator is assigning the shard to.
|
UnassignedInfo.AllocationStatus |
getAllocationStatus()
Returns the status of an unsuccessful allocation attempt.
|
long |
getConfiguredDelayInMillis()
Gets the total configured delay for allocating the replica shard when a node holding the replica left
the cluster and the deciders are waiting to see if the node returns before allocating the replica
elsewhere.
|
java.lang.String |
getExplanation()
Gets the explanation for the decision.
|
long |
getRemainingDelayInMillis()
Gets the remaining delay for allocating the replica shard when a node holding the replica left
the cluster and the deciders are waiting to see if the node returns before allocating the replica
elsewhere.
|
int |
hashCode() |
boolean |
isDecisionTaken()
Returns
true if a decision was taken by the allocator, false otherwise. |
static AllocateUnassignedDecision |
no(UnassignedInfo.AllocationStatus allocationStatus,
java.util.List<NodeAllocationResult> decisions)
Returns a NO decision with the given
UnassignedInfo.AllocationStatus , and the individual node-level
decisions that comprised the final NO decision if in explain mode. |
static AllocateUnassignedDecision |
no(UnassignedInfo.AllocationStatus allocationStatus,
java.util.List<NodeAllocationResult> decisions,
boolean reuseStore)
Returns a NO decision with the given
UnassignedInfo.AllocationStatus , and the individual node-level
decisions that comprised the final NO decision if in explain mode. |
static AllocateUnassignedDecision |
throttle(java.util.List<NodeAllocationResult> decisions)
Returns a THROTTLE decision, with the individual node-level decisions that
comprised the final THROTTLE decision if in explain mode.
|
XContentBuilder |
toXContent(XContentBuilder builder,
ToXContent.Params params) |
void |
writeTo(StreamOutput out)
Write this into the StreamOutput.
|
static AllocateUnassignedDecision |
yes(DiscoveryNode assignedNode,
java.lang.String allocationId,
java.util.List<NodeAllocationResult> decisions,
boolean reuseStore)
Creates a YES decision with the given individual node-level decisions that
comprised the final YES decision, along with the node id to which the shard is assigned and
the allocation id for the shard, if available.
|
atLeastOneNodeWithYesDecision, checkDecisionState, discoveryNodeToXContent, getNodeDecisions, getTargetNode, nodeDecisionsToXContent, sortNodeDecisions
public static final AllocateUnassignedDecision NOT_TAKEN
public AllocateUnassignedDecision(StreamInput in) throws java.io.IOException
java.io.IOException
public static AllocateUnassignedDecision no(UnassignedInfo.AllocationStatus allocationStatus, @Nullable java.util.List<NodeAllocationResult> decisions)
UnassignedInfo.AllocationStatus
, and the individual node-level
decisions that comprised the final NO decision if in explain mode.public static AllocateUnassignedDecision delayed(long remainingDelay, long totalDelay, @Nullable java.util.List<NodeAllocationResult> decisions)
UnassignedInfo.AllocationStatus.DELAYED_ALLOCATION
for getAllocationStatus()
.public static AllocateUnassignedDecision no(UnassignedInfo.AllocationStatus allocationStatus, @Nullable java.util.List<NodeAllocationResult> decisions, boolean reuseStore)
UnassignedInfo.AllocationStatus
, and the individual node-level
decisions that comprised the final NO decision if in explain mode.public static AllocateUnassignedDecision throttle(@Nullable java.util.List<NodeAllocationResult> decisions)
public static AllocateUnassignedDecision yes(DiscoveryNode assignedNode, @Nullable java.lang.String allocationId, @Nullable java.util.List<NodeAllocationResult> decisions, boolean reuseStore)
public static AllocateUnassignedDecision fromDecision(Decision decision, @Nullable DiscoveryNode assignedNode, @Nullable java.util.List<NodeAllocationResult> nodeDecisions)
AllocateUnassignedDecision
from the given Decision
and the assigned node, if any.public boolean isDecisionTaken()
AbstractAllocationDecision
true
if a decision was taken by the allocator, false
otherwise.
If no decision was taken, then the rest of the fields in this object cannot be accessed and will
throw an IllegalStateException
.isDecisionTaken
in class AbstractAllocationDecision
public AllocationDecision getAllocationDecision()
AllocationDecision
denoting the result of an allocation attempt.
If isDecisionTaken()
returns false
, then invoking this method will
throw an IllegalStateException
.@Nullable public UnassignedInfo.AllocationStatus getAllocationStatus()
null
if
no decision was taken or if the decision was Decision.Type#YES
. If isDecisionTaken()
returns false
, then invoking this method will throw an IllegalStateException
.@Nullable public java.lang.String getAllocationId()
AbstractAllocationDecision.getTargetNode()
returns a non-null value
and the node on which the shard is assigned already has a shard copy with an in-sync allocation id
that we can re-use. If isDecisionTaken()
returns false
, then invoking this method
will throw an IllegalStateException
.public long getRemainingDelayInMillis()
getAllocationStatus()
returns
UnassignedInfo.AllocationStatus.DELAYED_ALLOCATION
. If isDecisionTaken()
returns false
,
then invoking this method will throw an IllegalStateException
.public long getConfiguredDelayInMillis()
getAllocationStatus()
returns
UnassignedInfo.AllocationStatus.DELAYED_ALLOCATION
. If isDecisionTaken()
returns false
,
then invoking this method will throw an IllegalStateException
.public java.lang.String getExplanation()
AbstractAllocationDecision
AbstractAllocationDecision.isDecisionTaken()
returns false
, then invoking
this method will throw an IllegalStateException
.getExplanation
in class AbstractAllocationDecision
public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException
java.io.IOException
public void writeTo(StreamOutput out) throws java.io.IOException
Writeable
writeTo
in interface Writeable
writeTo
in class AbstractAllocationDecision
java.io.IOException
public boolean equals(java.lang.Object other)
equals
in class AbstractAllocationDecision
public int hashCode()
hashCode
in class AbstractAllocationDecision